最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法

 更新時(shí)間:2015年09月28日 18:00:25   投稿:goldensun  
這篇文章主要介紹了詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

內(nèi)置異常子類

在標(biāo)準(zhǔn)包java.lang中,Java定義了若干個(gè)異常類。前面的例子曾用到其中一些。這些異常一般是標(biāo)準(zhǔn)類RuntimeException的子類。因?yàn)閖ava.lang實(shí)際上被所有的Java程序引入,多數(shù)從RuntimeException派生的異常都自動(dòng)可用。而且,它們不需要被包含在任何方法的throws列表中。Java語(yǔ)言中,這被叫做未經(jīng)檢查的異常(unchecked exceptions )。因?yàn)榫幾g器不檢查它來(lái)看一個(gè)方法是否處理或拋出了這些異常。 java.lang中定義的未經(jīng)檢查的異常列于表1。表2列出了由 java.lang定義的必須在方法的throws列表中包括的異常,如果這些方法能產(chǎn)生其中的某個(gè)異常但是不能自己處理它。這些叫做受檢查的異常(checked exceptions)。Java定義了幾種與不同類庫(kù)相關(guān)的其他的異常類型。

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

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

使用Java創(chuàng)建自己的異常子類

盡管Java的內(nèi)置異常處理大多數(shù)常見(jiàn)錯(cuò)誤,你也許希望建立你自己的異常類型來(lái)處理你所應(yīng)用的特殊情況。這是非常簡(jiǎn)單的:只要定義Exception的一個(gè)子類就可以了(Exception當(dāng)然是Throwable的一個(gè)子類)。你的子類不需要實(shí)際執(zhí)行什么——它們?cè)陬愋拖到y(tǒng)中的存在允許你把它們當(dāng)成異常使用。

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

下面的例子聲明了Exception的一個(gè)新子類,然后該子類當(dāng)作方法中出錯(cuò)情形的信號(hào)。它重載了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的一個(gè)子類MyException。該子類非常簡(jiǎn)單:它只含有一個(gè)構(gòu)造函數(shù)和一個(gè)重載的顯示異常值的toString( )方法。ExceptionDemo類定義了一個(gè)compute( )方法。該方法拋出一個(gè)MyException對(duì)象。當(dāng)compute( )的整型參數(shù)比10大時(shí)該異常被引發(fā)。

main( )方法為MyException設(shè)立了一個(gè)異常處理程序,然后用一個(gè)合法的值和不合法的值調(diào)用compute( )來(lái)顯示執(zhí)行經(jīng)過(guò)代碼的不同路徑。下面是結(jié)果:

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

相關(guān)文章

  • 詳解Spring與MyBatis的整合的方法

    詳解Spring與MyBatis的整合的方法

    這篇文章主要為大家詳細(xì)介紹了Spring與MyBatis的整合,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Spring Boot右鍵maven build成功但是直接運(yùn)行main方法出錯(cuò)的解決方案

    Spring Boot右鍵maven build成功但是直接運(yùn)行main方法出錯(cuò)的解決方案

    這篇文章主要介紹了Spring Boot-右鍵maven build成功但是直接運(yùn)行main方法出錯(cuò)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 關(guān)于Java下奇怪的Base64詳解

    關(guān)于Java下奇怪的Base64詳解

    這篇文章主要給大家介紹了關(guān)于Java下奇怪的Base64的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用javaweb項(xiàng)目對(duì)數(shù)據(jù)庫(kù)增、刪、改、查操作的實(shí)現(xiàn)方法

    使用javaweb項(xiàng)目對(duì)數(shù)據(jù)庫(kù)增、刪、改、查操作的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于使用javaweb項(xiàng)目對(duì)數(shù)據(jù)庫(kù)增、刪、改、查操作的實(shí)現(xiàn)方法,avaWeb是指使用Java語(yǔ)言進(jìn)行Web應(yīng)用程序開(kāi)發(fā)的技術(shù),可以利用Java編寫(xiě)一些動(dòng)態(tài)網(wǎng)頁(yè)、交互式網(wǎng)頁(yè)、企業(yè)級(jí)應(yīng)用程序等,需要的朋友可以參考下
    2023-07-07
  • 深入講解Java中的流程控制與運(yùn)算符

    深入講解Java中的流程控制與運(yùn)算符

    這篇文章主要介紹了Java中的流程控制與運(yùn)算符,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • Java?Spring?循環(huán)依賴解析

    Java?Spring?循環(huán)依賴解析

    這篇文章主要介紹了Java?Spring?循環(huán)依賴解析,Spring?現(xiàn)在其實(shí)是我們?Java?程序開(kāi)發(fā)離不開(kāi)的基礎(chǔ)框架,個(gè)人覺(jué)得除了?JDK?我們用得最多的?Java?中間件就是?Spring?,今天我們一起來(lái)學(xué)習(xí)一下?Spring?的循環(huán)依賴。下面詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • mybatis?@InsertProvider報(bào)錯(cuò)問(wèn)題及解決

    mybatis?@InsertProvider報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了mybatis?@InsertProvider報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • @KafkaListener 如何使用

    @KafkaListener 如何使用

    這篇文章主要介紹了@KafkaListener 如何使用,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家詳細(xì)講解,文末給大家介紹了kafka的消費(fèi)者分區(qū)分配策略,需要的朋友可以參考下
    2023-02-02
  • Android 單例模式 Singleton 簡(jiǎn)單實(shí)例設(shè)計(jì)模式解析

    Android 單例模式 Singleton 簡(jiǎn)單實(shí)例設(shè)計(jì)模式解析

    這篇文章主要介紹了單例模式 Singleton 簡(jiǎn)單實(shí)例設(shè)計(jì)模式解析的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 詳解Java8中CompletableFuture類的使用

    詳解Java8中CompletableFuture類的使用

    Java?8中引入了CompletableFuture類,它是一種方便的異步編程工具,可以處理各種異步操作,本文將詳細(xì)介紹CompletableFuture的使用方式,希望對(duì)大家有所幫助
    2023-04-04

最新評(píng)論

通道| 普陀区| 南江县| 清远市| 陕西省| 肥城市| 长沙市| 乡城县| 县级市| 保亭| 南皮县| 武清区| 航空| 林周县| 雅安市| 乐山市| 广丰县| 溆浦县| 凤城市| 巴里| 榆林市| 汨罗市| 济南市| 乐安县| 乌拉特前旗| 麟游县| 兖州市| 青阳县| 安平县| 聂荣县| 灌南县| 绥阳县| 镇赉县| 靖西县| 香河县| 富顺县| 临汾市| 新郑市| 财经| 郎溪县| 北碚区|