Java異常分類[Throwable(Error/Exception(RuntimeException/其他異常)) 檢查時異常 非檢查時異常]

摘抄自:https://www.cnblogs.com/lulipro/p/7504267.html
Java標準庫內建了一些通用的異常類,這些類以Throwable爲頂層父類.Throwable又派生出Error和Exception類.
錯誤:Error類以及它的子類的實例,代表了JVM本身的錯誤,錯誤不能被程序員通過代碼處理,Error很少出現.因此,程序員應該關注Exception爲父類的分支下的各種異常.
異常:Exception及其子類,代表程序員運行時發生的各種不期望發生的事件,可以被Java異常處理機制使用,是異常處理的核心.
Java異常類結構
總體上根據javac對異常的處理要求,將異常類分爲兩類:
非檢查異常(unchecked exception):Error和RuntimeException以及它們的子類屬於非檢查異常.javac編譯時,不會提示和發現這樣的異常,不要求在程序裏處理這些異常.如果願意,也可也編寫代碼處理(try…catch—finally)它們,也可也不處理.對於這些異常,我們應該修正代碼,而不是通過異常處理器處理,這些異常發生的原因多半是因爲代碼寫的有問題.如除0ArithmeticError,錯誤的強制類型轉換錯誤ClassCastException,數組索引越界ArrayIndexOutOfBoundsException,使用了空對象NullPointerException等等.
檢查異常(checked exception):除了Error和RuntimeException外的其他異常,都屬於檢查異常,javac強制要求程序員爲檢查異常做預備處理工作(使用try…catch—finally或者throws),否則編譯不通過.這樣的異常一般是由程序的運行環境導致的.因爲程序可能被運行在各種未知的環境下,而程序員無法干預用戶如何使用他編寫的程序,於是程序員就應該爲這樣的異常時刻準備着.如SQLException\IOException\ClassNotFoundException等.
需要明確的是:檢查和非檢查是對於javac來說的,這樣就很好理解和區分了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章