1. 程式人生 > >00086_自定義異常

00086_自定義異常

exc poi pointer log 調用父類 int 字符串 runtime pan

1、自定義異常類的定義

  (1)通過閱讀異常源代碼:發現java中所有的異常類,都是繼承Throwable,或者繼承Throwable的子類。這樣該異常才可以被throw拋出;

  (2)說明這個異常體系具備一個特有的特性:可拋性:即可以被throw關鍵字操作;

  (3)查閱異常子類源碼,發現每個異常中都調用了父類的構造方法,把異常描述信息傳遞給了父類,讓父類幫我們進行異常信息的封裝。例如NullPointerException異常類源代碼:

1 public class NullPointerException extends RuntimeException {
2     public
NullPointerException() { 3 super();//調用父類構造方法 4 } 5 public NullPointerException(String s) { 6 super(s);//調用父類具有異常信息的構造方法 7 } 8 }

  (4)自定義異常格式:

1 Class 異常名 extends Exception{ //或繼承RuntimeException
2     public 異常名(){
3 }
4   public 異常名(String s){ 
5     super(s); 
6   }
7 }

  (5)自定義異常繼承Exception演示

 1 class MyException extends Exception{
 2     /*
 3     為什麽要定義構造函數,因為看到Java中的異常描述類中有提供對異常對象的初始化方法。
 4     */
 5     public MyException(){
 6         super();
 7     }
 8     public MyException(String message)    {
 9         super(message);// 如果自定義異常需要異常信息,可以通過調用父類的帶有字符串參數的構造函數即可。
10     }
11 }

  (6)自定義異常繼承RuntimeException演示

 1 class MyException extends RuntimeException{
 2     /*
 3     為什麽要定義構造函數,因為看到Java中的異常描述類中有提供對異常對象的初始化方法。
 4     */
 5     MyException(){
 6         super();
 7     }
 8     MyException(String message)    {
 9         super(message);// 如果自定義異常需要異常信息,可以通過調用父類的帶有字符串參數的構造函數即可。
10     }
11 }

00086_自定義異常