28、各種常見的異常
學習目標:
1、瞭解各種常見的異常
2、瞭解異常類之間的繼承關係
學習過程:
一、各種常見的異常
在上一節中程式如果你注意留意,程式丟擲的異常是:java.lang.ArithmeticException。這個異常是在lang包中已經定義的。在lang包中還定義了一些我們非常常見的異常,如下表:
上面這些異常要求都能記住,程式丟擲了異常後,你要知道程式發生了是什麼問題。我們可以舉個例子說明一下。程式碼如下:
1 2 3 4 5 6 7 8 9 |
System.out.println( "結果:" +result); //這句沒有執行
} |
finally語句塊不是必須的,所以我們並沒有finally語句塊,我們通過異常的printStackTrace方法列印異常資訊,所以控制檯最後輸入:
再比如一下例子:
1 2 3 4 5 6 7 8 |
|
控制檯輸出陣列越界異常。如圖:
二、異常直接的繼承關係
異常類之間的繼承關係如下圖:
對上圖我們需要說明幾點
1、Throwable類有兩個直接子類:一個是Error類,一個是Exception類。Error類前面我們也講過了,是java程式執行時系統的內部錯誤,例如記憶體溢位等,這點不需要我們程式設計師關心,關心了也沒有什麼辦法的。我們需要關係的Exception。他表示程式執行是的錯誤,可以使用try...catch...捕獲。
2、系統定義的異常大部分都是繼承了RuntimeException,有類名可知,就是執行時異常,上面我們介紹的的空指標異常,除數為0異常,和資料越界異常都是它的子類。