馬斯克的星鏈在英國獲得建地面站許可,提供全覆蓋衛星網際網路服務
阿新 • • 發佈:2021-08-02
異常處理五個關鍵字
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異常機制