JAVA異常

異常分類

總結

Throwable
1. Error 未檢查異常(unchecked)
2. Exception
- RuntimeException 運行時異常/ 未檢查異常(unchecked)
- IOExceptiont…. 已檢查異常


異常的分類 :

  1. 異常的繼承結構:基類爲Throwable,Error和Exception繼承Throwable,RuntimeException和 IOException等繼承Exception,具體的RuntimeException繼承RuntimeException。
  2. Error和RuntimeException及其子類成爲未檢查異常(unchecked),其它異常成爲已檢查異常(checked)。

    • RuntimeException異常=未檢查異常(unchecked)
    • 已檢查異常(checked):IOException等

Unchecked Exception:

  1. 指的是程序的瑕疵或邏輯錯誤,並且在運行時無法恢復。
  2. 包括Error與RuntimeException及其子類,如:OutOfMemoryError, UndeclaredThrowableException, IllegalArgumentException, IllegalMonitorStateException, NullPointerException, IllegalStateException, IndexOutOfBoundsException等。
  3. 語法上不需要聲明拋出異常。

Checked Exception:

  1. 代表程序不能直接控制的無效外界情況(如用戶輸入,數據庫問題,網絡異常,文件丟失等)
  2. 除了Error和RuntimeException及其子類之外,如:ClassNotFoundException, NamingException, ServletException, SQLException, IOException等。
  3. 需要try catch處理或throws聲明拋出異常。

常見的幾種RuntimeException異常如下:

NullPointerException - 空指針引用異常
ClassCastException - 類型強制轉換異常。
IllegalArgumentException - 傳遞非法參數異常。
ArithmeticException - 算術運算異常
ArrayStoreException - 向數組中存放與聲明類型不兼容對象異常
IndexOutOfBoundsException - 下標越界異常
NegativeArraySizeException - 創建一個大小爲負數的數組錯誤異常
NumberFormatException - 數字格式異常
SecurityException - 安全異常
UnsupportedOperationException - 不支持的操作異常


java異常的重寫規則:

重寫時,子類方法的異常小於(是父類異常的子類)或少於(經父類的異常少,或沒有)父類方法的異常

java的重寫規則:
對於異常重寫方法不能拋出新的異常或者比被重寫方法聲明的檢查異常更廣的檢查異常。但是可以拋出更少,更有限或者不拋出異常。

注意:覆蓋父類某方法的子類方法不能拋出比父類方法更多的異常,所以,有時設計父類的方法時會聲明拋出異常,但實際的實現方法的代碼卻並不拋出異常,這樣做的目的就是爲了方便子類方法覆蓋父類方法時可以不拋出異常。

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