1. 程式人生 > 其它 >HM-SpringBoot2.8【SpringBoot啟動流程分析】

HM-SpringBoot2.8【SpringBoot啟動流程分析】

異常處理五個關鍵字

    try:用於監聽。將要被監聽的程式碼(可能丟擲異常的程式碼)放在try語句塊之內,當try語句塊內發生異常時,異常就被丟擲。
    catch:用於捕獲異常。catch用來捕獲try語句塊中發生的異常
    finally:finally語句塊總是會被執行。它主要用於回收try塊裡開啟的物力資源(如資料庫連線、網路連線和磁碟檔案)
    只有finally塊,執行完成之後,才會回來執行try或者catch塊中的return或者throw語句。如果finally中使用了return或者
    throw等終止方法的語句,則不會跳回執行,直接停止。
    throw:用於丟擲異常。
    throws:用在方法簽名中,用於宣告該方法可能丟擲的異常


// 編寫多重catch語句塊注意事項:catch是用來捕java執行時系統引發的異常 // 順序問題:先小後大,即先子類後父類;誰先捕獲就報誰的捕獲錯誤,下一個就不會捕獲,程式終止

還可以用throw丟擲明確的異常:throw ThrowableInstance;

   ## throws

     如果一個方法可以導致一個異常但不處理它,它必須指定這種行為以使方法的呼叫者可以保護它們自己

而不發生異常。要做到這點,我們可以在方法宣告中包含一個 throws 子句。

  ##  finally
  
     finally 子句是可選項,可以有也可以無,但是每個 try 語句至少需要一個 catch 或

者 finally 子句。

  ##  try, catch,finally ,return 執行順序

1.執行try,catch , 給返回值賦值
2.執行finally
3.return

  ## 自定義異常
 
    建立自定義異常類。

在方法中通過 throw 關鍵字丟擲異常物件。
如果在當前丟擲異常的方法中處理異常,可以使用 try-catch 語句捕獲並處理;否則在方法的
宣告處通過 throws 關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作。
在出現異常方法的呼叫者中捕獲並處理異常。

public class 異常 {
    public static void main(String[] args) {
       
        int a = 1;
        int b = 0;
        try{//try監控區域
            if(b == 0) throw new ArithmeticException(); // 通過throw語句丟擲異常
            System.out.println("a/b的值是:"+ a/b);
            System.out.println("this will not be printed");
        }
        //ArithmeticException e啥意思
        catch(ArithmeticException e){// catch捕捉異常
            System.out.println("程式出現異常,變數b不能為0!");
        }
        System.out.println("程式正常結束");

        // 編寫多重catch語句塊注意事項:catch是用來捕java執行時系統引發的異常
// 順序問題:先小後大,即先子類後父類;誰先捕獲就報誰的捕獲錯誤,下一個就不會捕獲,程式終止
        try{
            int a1 = 2;
            int b1 = 42 / a1;
            System.out.println("a1 = "+ a1);
            try{
                if(a1==1){
                    a1 = a1 / (a1-a1);
                }
                if(a1==2){
                    int c[] = {1};
                    c[42] = 99;
                }

            }catch (ArrayIndexOutOfBoundsException e){
                System.out.println("ArrayIndexOutOfBoundsException:"+ e);
            }
        }
        catch(ArithmeticException e){
            System.out.println(" Divide by 0"+ e);;
        }


        // 還可以用throw丟擲明確的異常:throw ThrowableInstance;

        //throws
        /**
         如果一個方法可以導致一個異常但不處理它,它必須指定這種行為以使方法的呼叫者可以保護它們自己
而不發生異常。要做到這點,我們可以在方法宣告中包含一個 throws 子句。
         */
        // finally
        /*
         finally 子句是可選項,可以有也可以無,但是每個 try 語句至少需要一個 catch 或
者 finally 子句。

        */

        /*
        try, catch,finally ,return 執行順序
1.執行try,catch , 給返回值賦值
2.執行finally
3.return 
        */
    
        // 自定義異常
        /*
        建立自定義異常類。
在方法中通過 throw 關鍵字丟擲異常物件。
如果在當前丟擲異常的方法中處理異常,可以使用 try-catch 語句捕獲並處理;否則在方法的
宣告處通過 throws 關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作。
在出現異常方法的呼叫者中捕獲並處理異常。

        
        */
        }   

   
}

這裡只寫了try-catch 語句,和巢狀try-catch語句,後面的其他用法沒寫。
詳細請看:狂神說的7.javaSE異常機制

努力拼搏吧,不要害怕,不要去規劃,不要迷茫。但你一定要在路上一直的走下去,儘管可能停滯不前,但也要走。