標籤:
1.java異常階層:
粉紅色的是已檢查異常(checked exceptions),其必須被 try{}catch語句塊所捕獲,或者在方法簽名裡通過throws子句聲明.已檢查異常必須在編譯時間被捕捉處理,命名為 CHecked Exception 是因為Java編譯器要進行檢查,Java虛擬機器也要進行檢查,以確保這個規則得到遵守.
綠色的是未檢查異常(unchecked exceptions),需要程式員自己分析代碼決定是否捕獲和處理,比如 null 指標,被0除...
聲明為Error的,屬於嚴重錯誤,需要根據商務資訊進行特殊處理,Error不需要捕捉。
2.異常
描述
2.1 非檢查異常
ArithmeticException
當出現異常的運算條件時,拋出此異常。例如,一個整數"除以零"時,拋出此類的一個執行個體。
ArrayIndexOutOfBoundsException
用非法索引訪問數組時拋出的異常。如果索引為負或大於等於數組大小,則該索引為非法索引。
ArrayStoreException
試圖將錯誤類型的Object Storage Service到一個對象數組時拋出的異常。
ClassCastException
當試圖將對象強制轉換為不是執行個體的子類時,拋出該異常。
IllegalArgumentException
拋出的異常表明向方法傳遞了一個不合法或不正確的參數。
IllegalMonitorStateException
拋出的異常表明某一線程已經試圖等待對象的監視器,或者試圖通知其他正在等待對象的監視器而本身沒有指定監視器的線程。
IllegalStateException
在非法或不適當的時間調用方法時產生的訊號。換句話說,即 Java 環境或 Java 應用程式沒有處於請求操作所要求的適當狀態下。
IllegalThreadStateException
線程沒有處於請求操作所要求的適當狀態時拋出的異常。
IndexOutOfBoundsException
指示某排序索引(例如對數組、字串或向量的排序)超出範圍時拋出。
NegativeArraySizeException
如果應用程式試圖建立大小為負的數組,則拋出該異常。
NullPointerException
當應用程式試圖在需要對象的地方使用 null 時,拋出該異常。
NumberFormatException
當應用程式試圖將字串轉換成一種數實值型別,但該字串不能轉換為適當格式時,拋出該異常。
SecurityException
由安全管理器拋出的異常,指示存在安全侵犯。
StringIndexOutOfBoundsException
此異常由 String 方法拋出,指示索引或者為負,或者超出字串的大小。
UnsupportedOperationException
當不支援要求的操作時,拋出該異常。
2.2 已檢查異常
ClassNotFoundException
應用程式試圖載入類時,找不到相應的類,拋出該異常。
CloneNotSupportedException
當調用 Object 類中的 clone 方法複製對象,但該對象的類無法實現 Cloneable 介面時,拋出該異常。
IllegalAccessException
拒絕訪問一個類的時候,拋出該異常。
InstantiationException
當試圖使用 Class 類中的 newInstance 方法建立一個類的執行個體,而指定的類對象因為是一個介面或是一個抽象類別而無法執行個體化時,拋出該異常。
InterruptedException
一個線程被另一個線程中斷,拋出該異常。
NoSuchFieldException
請求的變數不存在。
NoSuchMethodException
請求的方法不存在。
3. 異常方法
下面的列表是Throwable 類的主要方法:
public String getMessage()
返回關於發生的異常的詳細資料。這個訊息在Throwable 類的建構函式中初始化了。
public Throwable getCause()
返回一個Throwable 對象代表異常原因。
public String toString()
使用getMessage()的結果返回類的串級名字。
public void printStackTrace()
列印toString()結果和棧層次到System.err,即錯誤輸出資料流。
public StackTraceElement [] getStackTrace()
返回一個包含堆棧層次的數組。下標為0的元素代表棧頂,最後一個元素代表方法呼叫堆疊的棧底。
public Throwable fillInStackTrace()
用當前的調用棧層次填充Throwable 對象棧層次,添加到棧層次任何先前資訊中。
Java 異常分類