自定義例外類自定義例外
1、使用 Java 內置的例外類可以描述在編程時出現的大部分例外情況,
除此之外,用戶還可以自定義例外,用戶自定義例外類,只需繼承 Exception 類即可,
2、在程式中使用自定義例外類,大體可以分為以下幾個步驟:
-
創建自定義例外類
-
在方法中通過 throw 關鍵字拋出例外物件
-
如果在當前拋出例外的方法中處理例外,可以使用 try-catch 陳述句捕獲例外并處理;
否則在方法的宣告處通過 throws 關鍵字指明要拋出給方法呼叫者的例外,繼續進行下一步操作
-
在出現例外方法的呼叫者中捕獲并處理例外
3、實際應用中的經驗總結:
-
處理運行時例外時,采用邏輯去合理規避同時輔助 try-catch 處理
-
在多重 catch 塊后面,可以加一個 catch(Exception) 來處理可能會被遺漏的例外
注:catch(Exception)是最大的例外類
-
對于不確定的代碼,也可以加上 try-catch,處理潛在的例外
-
盡量去處理例外,切忌只是簡單地呼叫 printStackTrace() 去列印輸出
-
具體如何處理例外,要根據不同的業務需求和例外型別去決定
-
盡量添加 finally 陳述句塊去釋放占用的資源 如:IO 流 ~ Scanner ~
package exception.demo2; /** * java 例外之自定義例外: * 1、使用 Java 內置的例外類可以描述在編程時出現的大部分例外情況, * 除此之外,用戶還可以自定義例外,用戶自定義例外類,只需繼承 Exception 類即可, * 2、在程式中使用自定義例外類,大體可以分為以下幾個步驟: * (1)創建自定義例外類 * (2)在方法中通過 throw 關鍵字拋出例外物件 * (3)如果在當前拋出例外的方法中處理例外,可以使用 try-catch 陳述句捕獲例外并處理; * 否則在方法的宣告處通過 throws 關鍵字指明要拋出給方法呼叫者的例外,繼續進行下一步操作 * (4)在出現例外方法的呼叫者中捕獲并處理例外 * 3、實際應用中的經驗總結: * (1)處理運行時例外時,采用邏輯去合理規避同時輔助 try-catch 處理 * (2)在多重 catch 塊后面,可以加一個 catch(Exception) 來處理可能會被遺漏的例外 * 注:catch(Exception)是最大的例外類 * (3)對于不確定的代碼,也可以加上 try-catch,處理潛在的例外 * (4)盡量去處理例外,切忌只是簡單地呼叫 printStackTrace() 去列印輸出 * (5)具體如何處理例外,要根據不同的業務需求和例外型別去決定 * (6)盡量添加 finally 陳述句塊去釋放占用的資源 如:IO 流 ~ Scanner ~ */ public class MyException extends Exception { /** * 傳遞一個數字 * 如果這個數字大于10 則拋出例外 */ private int detail; //構造器 public MyException(int a) { this.detail = a; } //toString:例外的列印資訊 @Override public String toString() { return "捕獲自定義例外 MyException { " + "當前引數 " + detail + " > 10 " + '}'; } }
測驗類測驗例外
try-catch 陳述句捕獲例外
throw 關鍵字在方法中拋出例外
throws 關鍵字在方法上拋出例外
package exception.demo2; /** * 測驗類 * 測驗例外 */ public class Test { //可能會存在例外的方法 static void test(int a) throws MyException { System.out.println("傳遞的引數為:" + a); if (a > 10) { /** * 此處可以通過 try-catch 陳述句捕獲例外 * 也可以在方法上通過 throws 關鍵字拋出例外 * 此處選擇捕獲,外面就不用再捕獲 * 此處選擇拋出,外面需要捕獲 */ 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); } } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/196888.html
標籤:其他
上一篇:Java例外之例外處理機制
