關于異常處理

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

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

二、總結

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

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

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容