1. 程式人生 > >一、基礎篇--1.1Java基礎-Exception、Error、RuntimeException與一般異常有何異同

一、基礎篇--1.1Java基礎-Exception、Error、RuntimeException與一般異常有何異同

Throwable、Error、Exception、RuntimeException 關係如下類圖所示:

Throwable:

Throwable類是java語言中所有錯誤或者異常的超類。它的兩個子類是Error和Exception。

Error:

Error是Throwable的子類,用於指示合理的應用程式不應該試圖捕獲的嚴重問題。

一般都是不可控制的(unchecked),用來表示虛擬機器內部錯誤或者底層資源的錯誤。

Exception:

可以是被控制的(checked)或者不可控制的(unchecked),一般是有認為導致的錯誤,應該在程式級別處理掉。

Exception類和所有子類(不包括RuntimeException類及其子類)都是檢查異常(checked exceptions),它們需要在方法或構造方法的throws子句中宣告,可以傳遞到外部。

RuntimeException:

RuntimeException是那些可能在 Java 虛擬機器正常執行期間丟擲的異常的超類。可能在執行方法期間丟擲但未被捕獲的RuntimeException的任何子類都無需在 throws子句中進行宣告。RuntimeException是Exception的子類,是不可控制的(unchecked)。

常見的幾種RuntimeException:

NullPointerException(空指標異常) 

IndexOutOfBoundsException(下標越界異常) 

IllegalArgumentException - 傳遞非法引數異常。

ClassCastException - 型別強制轉換異常。

NumberFormatException (String轉換為指定的數字型別異常) 

 ArithmeticException -(算術運算異常 如除數為0) 

 ArrayStoreException - (向陣列中存放與宣告型別不相容物件異常) 

SecurityException -(安全異常)

UnsupportedOperationException - 不支援的操作異常