java 自定義異常(基礎)
阿新 • • 發佈:2021-08-09
java自定義異常(基礎)
在java語言中允許使用者自定義異常類。自定義異常類不是系統監測到的異常,而是由使用者自己定義的異常。
自定義異常同樣需要try-catch-finally語句捕獲,但必須由使用者自己丟擲異常(throw new MyException)
使用者自定義異常類時,只需要繼承Exception類即可。
步驟:
- 建立自定義異常類
- 在方法中通過throw關鍵字丟擲異常物件。
- 如果在當前丟擲異常的方法中處理異常,可以使用try-catch語句捕獲異常並處理;否則在方法的宣告處通過throws關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作。
- 在出現異常方法的呼叫者中捕獲並處理異常。
程式碼示例
//首先自定義一個異常 package exception.Demo02; //自定義的異常類 public class MyException extends Exception {//繼承Exception類 //傳遞數字>10丟擲異常 private int detail; public MyException(int a) { this.detail = a; } //異常的列印資訊 toString @Override public String toString() { return "MyException{" + detail + '}'; } } //寫一個測試類 package exception; import exception.Demo02.MyException; public class Test {//方法 //可能會存在異常的方法 static void test(int a) throws MyException{//丟擲異常 System.out.println("傳遞的引數為: "+a); if(a>10){ throw new MyException(a); } System.out.println("ok"); } public static void main(String[] args) { try { test(1); } catch (Exception e) { System.out.println("MyException->"+e); } } }
實際應用中的經驗總結(摘自狂神說java)
- 處理執行時異常時,採用邏輯去合理規避同時輔助try-catch處理
- 在多重catch塊後面,可以加一個catch(Exception)來處理可能會被遺漏的異常。
- 對於不確定的程式碼,也可以加上try-catch,處理潛在的異常。
- 儘量新增finally語句塊去釋放佔用的資源。