Java基礎異常整理(持續更新)

銀河1號發表於2019-01-04


想看更全更多整理請看 http://www.apexyun.com


java.lang

java.lang.ArithmeticException

異常算術條件時丟擲。 例如,“除以零”的整數會丟擲。

java.lang.ArrayIndexOutOfBoundsException

丟擲以表示使用非法索引訪問陣列。 索引為負數或大於或等於陣列的大小。

java.lang.ArrayStoreException

丟擲以表示嘗試將錯誤型別的物件儲存到物件陣列中。 例如,以下程式碼生成一個ArrayStoreException :

Object x[] = new String[3];

x[0] = new Integer(0);

java.lang.ClassCastException

丟擲表示程式碼嘗試將物件轉換為不屬於例項的子類。 例如,以下程式碼生成一個ClassCastException :

Object x = new Integer(0);

System.out.println((String)x);

java.lang.ClassNotFoundException

當應用程式嘗試通過其名稱載入類時丟擲:

• Class.forName方法 。

• ClassLoader.findSystemClass方法。

• ClassLoader.loadClass方法。

但是沒有找到指定名稱的類的定義。

java.lang. CloneNotSupportedException

物件的類未實現Cloneable介面。覆蓋clone方法的應用程式也可以丟擲此異常以指示物件無法或不應被克隆。

java.lang. EnumConstantNotPresentException

當應用程式嘗試通過名稱訪問列舉常量時丟擲,列舉型別不包含指定名稱的常量。

java.lang. IllegalAccessException

當應用程式嘗試反射建立例項(陣列除外),設定或獲取欄位或呼叫方法時,當前執行的方法無法訪問指定類,欄位的定義,方法或建構函式。會丟擲IllegalAccessException。

java.lang. IllegalArgumentException

丟擲表示方法傳入了非法或不正確的引數。

java.lang. IllegalMonitorStateException

執行緒嘗試在物件的監視器上wait或notify,卻沒有擁有指定的監視器。

java.lang. IllegalStateException

表示在非法或不適當的時間呼叫了一種方法。 換句話說,Java環境或Java應用程式對於請求的操作並不處於適當的狀態。

java.lang. IllegalThreadStateException

丟擲以指示執行緒處於所請求操作的不適當狀態。

java.lang. IndexOutOfBoundsException

丟擲以表示某種索引(例如陣列,字串或向量)的索引超出範圍。

應用程式可以將此類子類化以指示類似的異常。

java.lang. InstantiationException

當應用程式嘗試使用newInstance方法建立類的例項時丟擲,但指定的類物件不能被例項化。 例項化可能由於各種原因而失敗,包括但不限於:

• 類物件表示抽象類,介面

• 該類沒有空值建構函式

java.lang. InterruptedException

被中止異常。當某個執行緒處於長時間的等待、休眠或其他暫停狀態,而此時其他的執行緒通過Thread的interrupt方法終止該執行緒時丟擲該異常。

java.lang. NegativeArraySizeException

一個應用程式嘗試建立一個負數大小的陣列丟擲。

java.lang. NoSuchFieldException

表示該類沒有指定的欄位。

java.lang. NoSuchMethodException

當無法找到特定方法時丟擲。

java.lang. NullPointerException

當應用程式嘗試在需要物件的情況下為null時丟擲。

java.lang. NumberFormatException

將字串轉換為數字,格式錯誤。

java.lang. ReflectiveOperationException

核心反射中的反射操作所引起的異常的常見超類。

java.lang. RuntimeException

RuntimeException是在Java虛擬機器的正常操作期間可以丟擲的那些異常的超類。

RuntimeException及其子類是未經檢查的異常 。 unchecked異常不需要在方法或建構函式throws。

java.lang. SecurityException

由安全管理器丟擲,表示安全違規。

java.lang. StringIndexOutOfBoundsException

索引為負或大於字串的大小。對於某些方法(如charAt方法)。

java.lang. TypeNotPresentException

使用表示型別名稱的字串訪問型別時沒有找到型別的定義丟擲。此異常不同於ClassNotFoundException在ClassNotFoundException是檢查的異常,而此異常是未經檢查的。

java.lang. UnsupportedOperationException

丟擲以表示不支援的操作。


java.lang. AbstractMethodError

當應用程式嘗試呼叫抽象方法時丟擲。

java.lang. AssertionError

丟擲以表明斷言失敗。

java.lang. BootstrapMethodError

未找到其引導方法。

java.lang. ClassCircularityError

當Java虛擬機器檢測到正在載入的類的超類層次結構中的迴圈性時丟擲。

java.lang. ClassFormatError

當Java虛擬機器嘗試讀取類檔案並確定檔案格式不正確或不能解釋為類檔案時丟擲。

java.lang. ExceptionInInitializerError

表示在靜態初始化程式中發生意外異常。

java.lang. IllegalAccessError

如果應用程式嘗試訪問或修改某個欄位,或呼叫無法訪問的方法,則丟擲此異常。

java.lang. IncompatibleClassChangeError

當一些類定義發生不相容的類更改時丟擲。 當前執行方法所依賴的某些類的定義已經改變了。

java.lang. InstantiationError

當應用程式嘗試使用Java new構造來例項化抽象類或介面時丟擲。

java.lang. InternalError

在Java虛擬機器中引發了一些意外的內部錯誤。

java.lang. LinkageError

一個類對另一個類有依賴,而後期執行時依賴的類發生變化導致異常。

java.lang. NoClassDefFoundError

Java虛擬機器在編譯時能找到類定義,而在執行時找不到導致的錯誤。

java.lang. NoSuchFieldError

Java虛擬機器在編譯時能找到field,而在執行時找不到導致的錯誤。

java.lang. NoSuchMethodError

Java虛擬機器在編譯時能找到方法(靜態或例項),而在執行時找不到。

java.lang. OutOfMemoryError

當Java虛擬機器由於記憶體不足而無法分配物件時丟擲。

java.lang. StackOverflowError

在程式棧空間耗盡時丟擲,通常是深度遞迴導致。

java.lang. UnsupportedClassVersionError

類的版本號不對。通常是由於高版本JDK編譯在低版本JVM執行導致。

java.lang. VerifyError

Java虛擬機器編譯的時候,”校驗器"檢測到一個類檔案雖然格式正確,但包含著一些內部不一致性或安全性問題時,丟擲該錯誤。

java.lang. VirtualMachineError

丟擲以表明Java虛擬機器已損壞或已耗盡資源。


更多文章歡迎訪問 http://www.apexyun.com/

聯絡郵箱:public@space-explore.com

(未經同意,請勿轉載)


相關文章