自定義異常及經驗小結
阿新 • • 發佈:2020-07-14
自定義異常及經驗小結
- 使用Java內建的異常類可以描述在程式設計時出現的大部分異常情況。除此之外,使用者還可以自定義異常。使用者自定義異常類,只需繼承Exception類即可。
- 在程式中使用自定義異常類,大體可分為以下幾個步驟:
- 建立自定義異常類。
- 在方法中通過throw關鍵字丟擲異常物件。
- 如果在當前丟擲異常的方法中處理異常,可以使用try-catch語句捕獲並處理;否則在方法的宣告處通過throws關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作。
- 在出現異常方法的呼叫者中捕獲並處理異常。
程式碼如下
//自定義異常類 public class MyException extends Exception{ //傳遞數字>10; private int detail; public MyException(int a) { this.detail = a; } //toString:異常的列印資訊 @Override public String toString() { return "MyException{" + detail + '}'; } }
Test
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(11); } catch (MyException e) { //這裡可以增加一些處理異常的程式碼~ System.out.println("MyException=>"+e); } }
實際應用中的經驗總結
- 處理執行時的異常時,採用邏輯去合理規避同時輔助try-catch處理
- 在多重catch塊後面,可以加一個catch(Exception)來處理可能會被遺漏的異常
- 對於不確定的程式碼,也可以加上try-catch,處理潛在的異常
- 儘量去處理異常,切忌只是簡單地呼叫printStackTrace()去列印輸出
- 具體如何處理異常,要根據不同的業務需求和異常型別去決定
- 儘量新增finally語句塊去釋放佔用的資源