成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

自定義異常鏈處理

Leo_chen / 3468人閱讀

摘要:自定義項(xiàng)目異常使用自動(dòng)生成無參和全部參數(shù)的構(gòu)造方法,并生成對(duì)應(yīng)字段的和方法異常鏈處理層層運(yùn)行執(zhí)行之后,在的中捕獲到了異常,打印的異常信息為我們?cè)趻伋龅漠惓W優(yōu)榍忻鎾伋龅漠惓5木褪嵌皇?,到了最終捕獲到的還是我們最初的拋出的類型。

1.自定義項(xiàng)目異常

使用lombok自動(dòng)生成無參和全部參數(shù)的構(gòu)造方法,并生成對(duì)應(yīng)字段的get和set方法

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyException extends  Exception{
    private int code;
    private String errorMessage;
}
2.異常鏈處理
/**
 * dao層
 * /
public class MyDao {
    public void getUserInfo() throws MyException{
        throw new MyException(2,"request param error");
    }
}
/**
 * service層
 * /
public class MySerivice {
    public void getUserInfo() throws Throwable{
        MyDao myDao = new MyDao();
        myDao.getUserInfo();
    }
}
public class TTService {
    public static  void main(String[] args){
        MySerivice mySerivice = new MySerivice();
        try {
            mySerivice.getUserInfo();
        }catch (MyException myException){
         System.err.println("myException:"+myException.getCode()+"/"+myException.getErrorMessage());
        }catch (Exception excepiton){
            System.err.println("excepiton:"+excepiton.getMessage());
        }catch (Throwable throwable){    
            System.err.println("throwable:"+throwable.getMessage());
        }
    }
}

運(yùn)行執(zhí)行之后,在TTService的MyException中捕獲到了異常,打印的異常信息為:

myException:2/request param error

我們?cè)贛ySerivice拋出的異常變?yōu)?Throwable(aop切面拋出的異常的就是Throwable)而不是MyException,到了TTService最終捕獲到的還是我們最初的拋出的MyException類型。
(雖然MySerivice拋出父類Throwable,其實(shí)父類引用指向子類對(duì)象MyException,最終捕獲的也就是子類的異常對(duì)象MyException)。

從上圖中我們可以看出,MyException是Exception的子類,而Exception又是Throwable的子類。
我們通過throw拋出異常MyExcepiton,方法通過throws一層層往上拋出的異常要大于等于異常MyExcepiton,也就是說throws拋出的異常必須是MyExcepiton或者父類。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67277.html

相關(guān)文章

  • Java 常見異常種類

    摘要:在中,異常被當(dāng)做對(duì)象來處理,其基類是。又分為檢查異常和運(yùn)行時(shí)異常。但在子類中,只有三類異常類提供了帶參數(shù)的構(gòu)造器,其它類型的異常則需要通過方法。在程序的邊界進(jìn)行異常捕獲。只針對(duì)異常的情況才使用異常。 1、什么是異常 結(jié)構(gòu)不佳的代碼不能運(yùn)行,這是Java的基本理念。 發(fā)現(xiàn)錯(cuò)誤的理想時(shí)機(jī)是在編譯期。然而,編譯器并不能發(fā)現(xiàn)所有的錯(cuò)誤,余下的問題就需要在程序運(yùn)行時(shí)解決。這就需要錯(cuò)誤能通過某種方...

    ethernet 評(píng)論0 收藏0
  • Java 異常處理相關(guān)

    摘要:相關(guān)類的結(jié)構(gòu)如下所示類類是語言中所有錯(cuò)誤和異常的超類,只有當(dāng)一個(gè)對(duì)象直接或者間接的是此類的實(shí)例時(shí),才能通過語句拋出異常,同樣,只有這種類才能被語句捕獲進(jìn)行處理類的子類是錯(cuò)誤,不是程序可以處理的,一般會(huì)是內(nèi)存不足,線程終止,虛擬機(jī)運(yùn)行錯(cuò)誤等, 相關(guān)類的結(jié)構(gòu)如下所示 java.lang.Object java.lang.Throwable java.lang.Error java....

    番茄西紅柿 評(píng)論0 收藏0
  • SpringMVC之DispatcherServlet(一)

    摘要:調(diào)用攔截器的方法,它在處理器實(shí)際執(zhí)行之前會(huì)被執(zhí)行,它在處理器執(zhí)行完畢以后被執(zhí)行,它在整個(gè)請(qǐng)求處理完成之后被執(zhí)行。根據(jù)參數(shù)調(diào)用具體的方法,并獲取返回值交有具體的參數(shù)解析器后,完成具體的相應(yīng)參數(shù)的解析,例如包括請(qǐng)求中得是等進(jìn)行相應(yīng)的解析。 官方文檔說明 中文文檔鏈接部分內(nèi)容引字下面博客博客1博客2 前言:DispacherServlet是什么? 與很多的web框架一樣,Spring Mvc...

    Chiclaim 評(píng)論0 收藏0
  • Java中的異常處理

    摘要:對(duì)異常的處理方法是打印異常的跟蹤棧信息并終止程序運(yùn)行。應(yīng)盡量對(duì)異常進(jìn)行適當(dāng)?shù)奶幚?,而不是簡單的將異常跟蹤棧信息打印出來? 一、異常概述 開發(fā)者都希望所有錯(cuò)誤都能在編譯階段被發(fā)現(xiàn),就是試圖在運(yùn)行程序之前排除所有錯(cuò)誤,但這是不現(xiàn)實(shí)的,余下問題必須在運(yùn)行期間得到解決。 Java將異常分為兩種:CheckedException和RuntimeException。其中,CheckedExcept...

    wemall 評(píng)論0 收藏0
  • JAVA學(xué)習(xí)之路 (七)異常

    摘要:阻止當(dāng)前方法或作用域的,稱為異常。一非檢查異常和,以及她們的子類。強(qiáng)制要求對(duì)這類異常做預(yù)備處理使用或者。這樣的異常一般是由程序的運(yùn)行環(huán)境導(dǎo)致的。后跟的是異常對(duì)象,或者異常對(duì)象的引用。 異常 什么是異常 相異與常態(tài),和正常情況下不一致,有錯(cuò)誤出現(xiàn)。 阻止當(dāng)前方法或作用域的,稱為異常。 異常分類 showImg(https://segmentfault.com/img/bVbfpnY?w=...

    Nekron 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<