自定義異常


.在程序中,可能會遇到JDK提供的任何標准異常類都無法充分描述清楚我們想要表達的問題,這種情況下可以創建自己的異常類,即自定義異常類。

      2.自定義異常類只需從Exception類或者它的子類派生一個子類即可。

      3.自定義異常類如果繼承Exception類,則為受檢查異常,必須對其進行處理;如果不想處理,可以讓自定義異常類繼承運行時異常RuntimeException類。

      4.習慣上,自定義異常類應該包含2個構造器:一個是默認的構造器,另一個是帶有詳細信息的構造器。

【示例】自定義異常類

1
2
3
4
5
6
7
8
9
10
11
/**IllegalAgeException:非法年齡異常,繼承Exception類*/
class  IllegalAgeException  extends  Exception {
     //默認構造器
     public  IllegalAgeException() {
     
     }
     //帶有詳細信息的構造器,信息存儲在message中
     public  IllegalAgeException(String message) {
         super (message);
     }
}

【示例】自定義異常類的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class  Person {
     private  String name;
     private  int  age;
 
     public  void  setName(String name) {
         this .name = name;
     }
 
     public  void  setAge( int  age)  throws  IllegalAgeException {
         if  (age <  0 ) {
             throw  new  IllegalAgeException( "人的年齡不應該為負數" );
         }
         this .age = age;
     }
 
     public  String toString() {
         return  "name is "  + name +  " and age is "  + age;
     }
}
 
public  class  TestMyException {
     public  static  void  main(String[] args) {
         Person p =  new  Person();
         try  {
             p.setName( "Lincoln" );
             p.setAge(- 1 );
         catch  (IllegalAgeException e) {
             e.printStackTrace();
             System.exit(- 1 );
         }
         System.out.println(p);
     }
}

 

圖6-11 示例6-11運行效果圖.png

 

使用異常機制的建議

      1.要避免使用異常處理代替錯誤處理,這樣會降低程序的清晰性,並且效率低下。

      2.處理異常不可以代替簡單測試---只在異常情況下使用異常機制。

      3.不要進行小粒度的異常處理---應該將整個任務包裝在一個try語句塊中。

      4.異常往往在高層處理(先了解!后面做項目會說!) 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM