java自定義異常類
-
MyException類
//或者繼承RuntimeException(運行時異常) public class MyException extends Exception { private static final long serialVersionUID = 1L; // 提供無參數的構造方法 public MyException() { } // 提供一個有參數的構造方法,可自動生成 public MyException(String msg) { super(msg);// 把參數傳遞給Throwable的帶String參數的構造方法 } }
查看Exception類的源碼, 發現源碼也就這么寫的,繼承后自定義的異常類也就成為了java異常體系的一部分
-
寫一個Student類,手動拋出MyException
class Student{ private int id; // 該異常繼承自Exception類,需要捕獲或者向上拋出異常 public void regist(int id) throws Exception { if ( id > 0){ this.id = id; }else{ // 手動拋出異常 throw new MyException("不能輸入負數"); } } }
-
測試類StudentTest
public class StudentTest{ public static void main(String args[]){ try{ Student s = new Student(); s.regist(-1001); // 對Student類throws的異常進行try-catch處理; System.out.println(s); }catch (Exception e){ System.out.println(e.getMessage()) } } }