http://www.verejava.com/?id=16992991138281 package com.exception2;
/**
注意:
1. 當異常發生的時候,程式會終止,其後面的代碼不會執行.
2. 異常分為編譯時異常和運作期異常
編譯期異常必須用 try{}catch{}捕獲,運作期異常可以不捕獲
編譯期異常從 Exception 繼承, 運作期異常從RuntimeException 繼承
異常的處理流程
注意:
1. try{}catch{} 代碼塊裡的局部變量, 不能在其外通路. 是以如果要通路
最好在try catch 代碼塊外定義,然後再使用.
2. 異常執行流程 當異常發生時,首先系統産生一個異常執行個體, 如果沒有try catch
代碼塊報異常終止執行, 如果遇到try catch 代碼塊, 系統會把異常執行個體跟
catch() 裡面的異常對象依次從上往下進行比對,如果比對成功進入 catch{} 代碼塊. 否則
報異常終止執行.
3. Exception 是異常的根類, 根據多态原則,是以所有的異常執行個體都可以轉為Exception
這樣通過 Exception 就可以捕獲到所有出現的異常.
4. finally{ }代碼塊的内容不管是否有異常 都會執行。 用來釋放資源,比如
關閉檔案,關閉資料庫連接配接等。
5. finally{} 代碼塊的語句, 是在return 之前運作的.
*/
public class TestException {
public static void main(String[] args) {
int[] scores = { 60, 70, 80 };
try {
System.out.println(scores[3]);
System.out.println(3 / 0);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("數組越界異常");
} catch (ArithmeticException e) {
System.out.println("數學異常");
} catch (Exception e) {
System.out.println("發生了異常");
}
}
}