Day31(自定義異常)
阿新 • • 發佈:2021-02-04
技術標籤:學習日記
自定義異常
使用Java內建的異常類可以描述在程式設計時出現的大部分異常情況。除此之外,使用者還可以自定義異常。使用者自定義異常類,值需繼承Exception類即可。
在程式中使用自定義異常類,大體可分為以下幾個步驟:
- 建立自定義異常類。
- 在方法中通過throw關鍵字丟擲異常物件
- 如果在當前丟擲異常的方法中處理異常,可以使用try-catch語句捕獲並處理;否則在方法的宣告處通過throws關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作。
- 在出現異常方法的呼叫者中捕獲並處理異常。
package com.lingxiang.exception;
//自定義的異常類
public class Demo0202b extends Exception {
private int detail;
public Demo0202b(int a){
this.detail = a;
}
//toString 列印異常資訊
public String toString(){
return "Demo0202b{"+detail+'}';
};
}
public class Test0202 {
public static void test(int a) throws Demo0202b{
System. out.println("輸入的引數為:"+a);
if (a>10){
throw new Demo0202b(a);
}
System.out.println("結束啦");
}
public static void main(String[] args) {
int a = 11;
try {
test(a);
}catch(Demo0202b b){
a = 0;
System. out.println("如果a>10則輸出0");
System.out.println("Demo0202b=>"+b);
}
System.out.println(a);
}
}
run:
輸入的引數為:11
如果a>10則輸出0
Demo0202b=>Demo0202b{11}
0
實際應用中的經驗總結
處理執行時異常時,採用邏輯去合理規避同時輔助try-catch處理
在多重catch塊後面,可以加一個catch(Exception)來處理可能被遺漏的異常
對於不確定的程式碼,也可以加上try-catch,處理潛在的異常
儘量去處理異常,切忌只是簡單地呼叫prinkStackTrace()去列印輸出
具體如何處理異常,要根據不同的業務需求和異常型別去決定
儘量新增finally語句塊去釋放佔用的資源