一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 詳解Java的內置異常以及創建自定義異常子類的方法

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

2020-01-07 14:17goldensun JAVA教程

這篇文章主要介紹了詳解Java的內置異常以及創建自定義異常子類的方法,是Java入門學習中的基礎知識,需要的朋友可以參考下

內置異常子類

在標準包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 中定義的未檢查異常子類
詳解Java的內置異常以及創建自定義異常子類的方法
表2:java.lang 中定義的檢查異常

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

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

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

Exception類自己沒有定義任何方法。當然,它繼承了Throwable提供的一些方法。因此,所有異常,包括你創建的,都可以獲得Throwable定義的方法。這些方法顯示在表3中。你還可以在你創建的異常類中覆蓋一個或多個這樣的方法。
表3 Throwable 定義的方法
詳解Java的內置異常以及創建自定義異常子類的方法
下面的例子聲明了Exception的一個新子類,然后該子類當作方法中出錯情形的信號。它重載了toString( )方法,這樣可以用println( )顯示異常的描述。

?
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
// 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( )來顯示執行經過代碼的不同路徑。下面是結果:

?
1
2
3
4
Called compute(1)
Normal exit
Called compute(20)
Caught MyException[20]

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91在线老王精品免费播放 | 日韩欧美中文字幕一区二区三区 | 精品国产综合区久久久久久 | 操熟美女又肥又嫩的骚屁股 | 精品国产欧美一区二区五十路 | 高清视频在线播放 | 久草青青在线 | 网站国产| 人妖欧美一区二区三区四区 | 国产精品天天在线 | 成人精品第一区二区三区 | 日本特黄一级大片 | 国产日韩一区二区三区在线播放 | 青青草99久久精品国产综合 | 国模大胆一区二区三区 | 百合女女师生play黄肉黄 | 希岛爱理aⅴ在线中文字幕 午夜综合网 | 极品丝袜小说全集 | 四虎国产精品免费久久久 | 国产一区二区视频在线观看 | 调教女帝 | 韩国美女豪爽一级毛片 | 我的男友是消防员在线观看 | 日韩高清在线高清免费 | 美女脱得一二净无内裤全身的照片 | 亚洲另类中文字幕 | 亚洲视频免 | 好女孩韩剧免费观看 | 天堂8在线天堂资源在线 | 国内会所按摩推拿国产 | 欧美在线成人免费国产 | 无码欧美喷潮福利XXXX | 国产精品吹潮香蕉在线观看 | 97理伦| 国产成人精品高清在线观看99 | 五月天国产视频 | 精品一区久久 | 俄罗斯精品bbw | 特黄一级 | 久久内在线视频精品mp4 | 国产精品久久久久久久久齐齐 |