2025-02-17

Java 中異常的分類
所有異常,都繼承自 java.lang.Throwable 類。
Throwable 有兩個直接子類, Error 類和 Exception 類。
Exception
Exception 則可使從任何標準 Java 庫的類方法,自己的方法以及運行時任何異常中拋出來的基類型。
異常可分為執行異常( RuntimeException )和檢查異常( Checked Exceptions )兩種
RuntimeException
RuntimeException 在默認情況下會得到自動處理。所以通常用不著捕獲 RuntimeException ,但在自己的封裝裡,也許仍然要選擇拋出一部分 RuntimeException 。
RuntimeException

是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。可能在執行方法期間拋出但未被捕獲的 RuntimeException

的任何子類都無需 在 throws

子句中進行聲明。( java api )
它是 uncheckedExcepiton 。
Java.lang.ArithmeticException
Java.lang.ArrayStoreExcetpion
Java.lang.ClassCastException
Java.lang.EnumConstantNotPresentException
Java.lang.IllegalArgumentException
       Java.lang.IllegalThreadStateException
       Java.lang.NumberFormatException
Java.lang.IllegalMonitorStateException
Java.lang.IllegalStateException
Java.lang.IndexOutOfBoundsException
       Java.lang.ArrayIndexOutOfBoundsException
       Java.lang.StringIndexOutOfBoundsException
Java.lang.NegativeArraySizeException’
Java.lang.NullPointerException
Java.lang.SecurityException
Java.lang.TypeNotPresentException
Java.lang.UnsupprotedOperationException
CheckedException
除瞭 runtimeException 以外的異常,都屬於 checkedException ,它們都在 java.lang 庫內部定義。 Java 編譯器要求程序必須捕獲或聲明拋出這種異常。
一個方法必須通過 throws 語句在方法的聲明部分說明它可能拋出但並未捕獲的所有 checkedException 。
Java.lang.ClassNotFoundException
Java.lang.CloneNotSupportedException
Java.lang.IllegalAccessException
Java.lang.InterruptedException
Java.lang.NoSuchFieldException
Java.lang.NoSuchMetodException
Error
當程序發生不可控這種錯誤時,通常的做法是通知用戶並中止程序的執行。
與異常不同的是 Error 及其子類的對象不應被拋出。
Error 是 Throwable 的子類,代表編譯時間和系統錯誤,用於指示合理的應用程序 不應該試圖捕獲 的嚴重問題。大多數這樣的錯誤都是異常條件。雖然 ThreadDeath 錯誤是一個 “ 正規 ” 的條件,但它也是 Error 的子類,因為大多數應用程序都不應該試圖捕獲它。
在執行該方法期間, 無需在其 throws 子句中聲明可能拋出但是未能捕獲 的 Error 的任何子類,因為這些錯誤可能是再也不會發生的異常條件。
它是 uncheckedExcepiton 。

作者“人生就是一種修行”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *