關于異常處理

一、為什么要有異常機制?

1、在傳統語言C語言中,當你操作資源時,一般是通過函數返回值code來判斷是否執行成功(一般是失敗返回小于零的整數)。
2、腳本語言,比如Python、PHP等,由于沒有返回類型的限制,一般是return false on failed。當然,這些腳本語言也有異常機制。
3、多返回值語言(Golang),一般是通過返回多個值(可能包含error對象),然后通過error值來判斷操作是否成功。

二、總結

??從上面幾個例子可以看出,①返回錯誤碼②返回false等,這些錯誤信息不夠清晰,很多時候也避免不了層層嵌套判斷的漩渦中。③的方式還不錯,不過每次都得check error。
??作為一門靜態語言,java是單返回值、返回類型確定的,當出現異常不能返回指定的類型時(當然,你可以返回null或empty object,但一般不推薦返回null),這個時候異常機制便能很好地解決這個問題。函數調用者只需關心調用這個函數會返回什么,異常需不需要這層處理還是繼續往上拋,可以大大減輕調用者的負擔(如果不需要這層處理,我只需關心api會返回什么,按照自己的邏輯往下寫,并不需要check error,資源釋放推薦使用try-with-resource)
??但是如果是unchecked exception,則必須在doc注明函數會拋什么異常,以便調用者使用,這一點不管是java、python還是php。

當函數無法完成其宣稱的任務的時候拋出異常!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容