SpringBoot全局異常捕獲

使用@ControllerAdvice注解,將Controller中未使用try-catch捕獲異常的踪古,進(jìn)行統(tǒng)一處理祖灰,
建立GlobalExceptionHandler類使用@ControllerAdvice注解

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Map<String,Object> handlerException(){
        Map<String,Object> map = new HashMap<>();
        map.put("code",500);
        map.put("msg","系統(tǒng)繁忙钟沛,請稍后重試");
        return map;
    }

    @ExceptionHandler(BusinessException.class)
    @ResponseBody
    public Map<String,Object> handlerBusinessException(BusinessException businessException){
        Map<String,Object> map = new HashMap<>();
        map.put("code",businessException.getCode());
        map.put("msg",businessException.getMsg());
        map.put("desc",businessException.getDesc());
        return map;
    }

    @ExceptionHandler(SQLException.class)
    @ResponseBody
    public Map<String,Object> handlerSQLException(){
        Map<String,Object> map = new HashMap<>();
        return map;
    }
}

其中BusinessException是業(yè)務(wù)定制異常,在使用過程中可以直接拋出異常局扶。如下:

@RequestMapping("/home2")
    @ResponseBody
    String getProductData2() throws BusinessException {
        throw new BusinessException(500,"系統(tǒng)異常","系統(tǒng)走神了");
    }

下邊是業(yè)務(wù)異常定制的實體恨统,可根據(jù)業(yè)務(wù)需求定制:

/**
 * 業(yè)務(wù)異常
 */
public class BusinessException extends Exception{
    /*異常處理編碼*/
    private Integer code;
    /*異常處理信息*/
    private String msg;
    /*異常處理描述*/
    private String desc;

    public BusinessException(Integer code, String msg, String desc) {
        this.code = code;
        this.msg = msg;
        this.desc = desc;
    }

    public BusinessException(String msg) {
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市三妈,隨后出現(xiàn)的幾起案子延欠,更是在濱河造成了極大的恐慌,老刑警劉巖沈跨,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兔综,居然都是意外死亡饿凛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門软驰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涧窒,“玉大人,你說我怎么就攤上這事锭亏【牢猓” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵慧瘤,是天一觀的道長戴已。 經(jīng)常有香客問我,道長锅减,這世上最難降的妖魔是什么糖儡? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮怔匣,結(jié)果婚禮上握联,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好金闽,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布纯露。 她就那樣靜靜地躺著,像睡著了一般代芜。 火紅的嫁衣襯著肌膚如雪埠褪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天蜒犯,我揣著相機(jī)與錄音组橄,去河邊找鬼。 笑死罚随,一個胖子當(dāng)著我的面吹牛玉工,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淘菩,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼遵班,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了潮改?” 一聲冷哼從身側(cè)響起狭郑,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汇在,沒想到半個月后翰萨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡糕殉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年亩鬼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阿蝶。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡雳锋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羡洁,到底是詐尸還是另有隱情玷过,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布筑煮,位于F島的核電站辛蚊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏真仲。R本人自食惡果不足惜嚼隘,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一谤狡、第九天 我趴在偏房一處隱蔽的房頂上張望墓懂。 院中可真熱鬧,春花似錦榜跌、人聲如沸钓葫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸭廷,卻和暖如春沃但,著一層夾襖步出監(jiān)牢的瞬間宵晚,已是汗流浹背晒他。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像孝鹊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子穴墅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容