1. 程式人生 > 資訊 >破解“退費難”問題,深圳釋出全國首個數字人民幣教培機構預付式消費平臺

破解“退費難”問題,深圳釋出全國首個數字人民幣教培機構預付式消費平臺

異常簡單分類

  1. 三種類型異常

    • 檢查性異常
    • 執行異常
    • 錯誤
  2. Java將異常當做類來處理,並定義了一個java.lang.Throwable作為所有異常的超類,異常類主要分為Error和Exception兩大類

捕獲和丟擲異常

  1. 丟擲異常

  2. 捕獲異常

  3. 異常處理五個關鍵字try、catch、finally、throw、throws

    • try: 監控異常, try出現在方法體中,它自身是一個程式碼塊,表示嘗試執行程式碼塊的語句。如果在執行過程中有某條語句丟擲異常,那麼程式碼塊後面的語句將不被執行。
    • catch:捕獲異常, catch出現在try程式碼塊的後面,自身也是一個程式碼塊,用於捕獲異常try程式碼塊中可能丟擲的異常。catch關鍵字後面緊接著它能捕獲的異常型別,所有異常型別的子類異常也能被捕獲。 可以多次使用,但要異常型別從小到大寫,將最大的異常型別放到後面。異常型別由大到小為Throwable->Error或 Exception_>......
    • finally:處理善後,不管是否捕獲到異常均會執行,可以不使用,一般在IO中發生異常後關閉資源
    • throw:主動丟擲異常, throw出現在方法體中,用於丟擲異常。當方法在執行過程中遇到異常情況時,將異常資訊封裝為異常物件,然後throw。
    • throws: throws出現在方法的宣告中,表示該方法可能會丟擲的異常,允許throws後面跟著多個異常型別
  4. IDEA丟擲異常快捷鍵

    ​ 選中可能出現異常的程式碼->ctrl+alt+T

  • try-catch-finally
public class Test {
    public static void main(String[] args) {
        int a=10;
        int b=0;
        try{//try監控區域
            System.out.println(a/b);
        }catch(ArithmeticException e){//catch捕獲異常
            System.out.println("除法分母不能為0");
        }catch(Exception e){
            System.out.println("除法分母不能為0");
        }finally{//處理善後工作
            System.out.println("finally");
        }
    }
}
  • throw
package com.yang;
public class Test {
    public static void main(String[] args) {
        new Test().test(1,0);
    }

    public void test(int a,int b){
        if (b==0){//當出現異常時,使用throw主動丟擲異常
            throw new ArithmeticException();
        }
    }
}
結果:
Exception in thread "main" java.lang.ArithmeticException
	at com.yang.Test.test(Test.java:9)
	at com.yang.Test.main(Test.java:4)
  • throws
package com.yang;
public class Test {
    public static void main(String[] args) {
        try {
            new Test().test(1,0);
        } catch (ArithmeticException e) {//繼續使用try-catch處理throws丟擲的異常
            e.printStackTrace();
        } finally {
        }
    }
    public void test(int a,int b) throws ArithmeticException{//假設這個方法處理不了異常,使用throws方法丟擲異常
        if (b==0){
            throw new ArithmeticException();
        }
    }
}

自定義異常

  • 使用者自定義異常只需要繼承Exception類即可
  • 自定義異常大體分為以下幾步
    1. 建立自定義異常類
    2. 在方法中通過throw關鍵字丟擲異常物件
    3. 如果在當前丟擲異常的方法中處理異常,可以使用try-catch語句捕獲並處理;否則在方法的宣告處通過throws關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作
    4. 在出現異常方法的呼叫者中捕獲並處理異常