00086_自定義異常
阿新 • • 發佈:2017-12-24
exc poi pointer log 調用父類 int 字符串 runtime pan
1、自定義異常類的定義
(1)通過閱讀異常源代碼:發現java中所有的異常類,都是繼承Throwable,或者繼承Throwable的子類。這樣該異常才可以被throw拋出;
(2)說明這個異常體系具備一個特有的特性:可拋性:即可以被throw關鍵字操作;
(3)查閱異常子類源碼,發現每個異常中都調用了父類的構造方法,把異常描述信息傳遞給了父類,讓父類幫我們進行異常信息的封裝。例如NullPointerException異常類源代碼:
1 public class NullPointerException extends RuntimeException { 2 publicNullPointerException() { 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_自定義異常