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語句塊去釋放占用的資源。