1. 程式人生 > >java中的Checked Exception和Unchecked Exception的區別

java中的Checked Exception和Unchecked Exception的區別

Java 定義了兩種異常:

  - Checked exception: 繼承自 Exception 類是 checked exception。程式碼需要處理 API 丟擲的 checked exception,要麼用 catch 語句,要麼直接用 throws 語句丟擲去。

  - Unchecked exception: 也稱 RuntimeException,它也是繼承自 Exception。但所有 RuntimeException 的子類都有個特點,就是程式碼不需要處理它們的異常也能通過編譯,所以它們稱作 unchecked exception。RuntimeException(執行時異常)不需要try...catch...或throws 機制去處理的異常。

NullpointerException 的繼承級別。 

NullpointerException 繼承自 RuntimeException,所以它是個 unchecked exception。

 最常用的五種RuntimeException:    

 ArithmeticException

int a=0;
int b= 3/a;

 ClassCastException:

Object x = new Integer(0);
System.out.println((String)x);

 IndexOutOfBoundsException
    ArrayIndexOutOfBoundsException,
    StringIndexOutOfBoundsException 

int [] numbers = { 1, 2, 3 };
int sum = numbers[3];

IllegalArgumentException
    NumberFormatException

int a = Interger.parseInt("test");

NullPointerExceptionextends

小結:

檢查性異常: 不處理編譯不能通過

非檢查性異常:不處理編譯可以通過,如果有丟擲直接拋到控制檯。

執行時異常: 就是非檢查性異常

非執行時異常: 就是檢查性異常