天天看點

Java 異常處理 之 捕獲處理流程

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("發生了異常");
        }

    }
}