国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

詳解Java的內置異常以及創建自定義異常子類的方法

2019-11-26 14:57:31
字體:
來源:轉載
供稿:網友

內置異常子類

在標準包java.lang中,Java定義了若干個異常類。前面的例子曾用到其中一些。這些異常一般是標準類RuntimeException的子類。因為java.lang實際上被所有的Java程序引入,多數從RuntimeException派生的異常都自動可用。而且,它們不需要被包含在任何方法的throws列表中。Java語言中,這被叫做未經檢查的異常(unchecked exceptions )。因為編譯器不檢查它來看一個方法是否處理或拋出了這些異常。 java.lang中定義的未經檢查的異常列于表1。表2列出了由 java.lang定義的必須在方法的throws列表中包括的異常,如果這些方法能產生其中的某個異常但是不能自己處理它。這些叫做受檢查的異常(checked exceptions)。Java定義了幾種與不同類庫相關的其他的異常類型。

表1:Java 的 java.lang 中定義的未檢查異常子類

表2:java.lang 中定義的檢查異常

使用Java創建自己的異常子類

盡管Java的內置異常處理大多數常見錯誤,你也許希望建立你自己的異常類型來處理你所應用的特殊情況。這是非常簡單的:只要定義Exception的一個子類就可以了(Exception當然是Throwable的一個子類)。你的子類不需要實際執行什么――它們在類型系統中的存在允許你把它們當成異常使用。

Exception類自己沒有定義任何方法。當然,它繼承了Throwable提供的一些方法。因此,所有異常,包括你創建的,都可以獲得Throwable定義的方法。這些方法顯示在表3中。你還可以在你創建的異常類中覆蓋一個或多個這樣的方法。
表3 Throwable 定義的方法

下面的例子聲明了Exception的一個新子類,然后該子類當作方法中出錯情形的信號。它重載了toString( )方法,這樣可以用println( )顯示異常的描述。

// This program creates a custom exception type.class MyException extends Exception {  private int detail;  MyException(int a) {    detail = a;  }  public String toString() {    return "MyException[" + detail + "]";  }}class ExceptionDemo {  static void compute(int a) throws MyException {    System.out.println("Called compute(" + a + ")");    if(a > 10)     throw new MyException(a);    System.out.println("Normal exit");  }  public static void main(String args[]) {    try {      compute(1);      compute(20);    } catch (MyException e) {      System.out.println("Caught " + e);    }  }}

該例題定義了Exception的一個子類MyException。該子類非常簡單:它只含有一個構造函數和一個重載的顯示異常值的toString( )方法。ExceptionDemo類定義了一個compute( )方法。該方法拋出一個MyException對象。當compute( )的整型參數比10大時該異常被引發。

main( )方法為MyException設立了一個異常處理程序,然后用一個合法的值和不合法的值調用compute( )來顯示執行經過代碼的不同路徑。下面是結果:

Called compute(1)Normal exitCalled compute(20)Caught MyException[20]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 休宁县| 广南县| 遂宁市| 彰化县| 双城市| 儋州市| 铅山县| 拉萨市| 抚松县| 汝州市| 嘉祥县| 西丰县| 沅陵县| 白朗县| 赤壁市| 衢州市| 铅山县| 商洛市| 邵武市| 乌恰县| 剑河县| 宁夏| 江门市| 当雄县| 五家渠市| 龙岩市| 龙泉市| 和龙市| 平湖市| 临海市| 湖口县| 怀安县| 西畴县| 吉水县| 清涧县| 成安县| 任丘市| 定襄县| 盐城市| 铁岭市| 阿克陶县|