SSM-Springboot筆記(6)- 全局異常處理

任何業(yè)務(wù)系統(tǒng)都有可能發(fā)生異常的場景,通過配置全局異常,可以制定統(tǒng)一的異常頁面或者錯(cuò)誤碼,從而提高用戶的體驗(yàn)度。

1 Springboot配置全局異常

  • 類添加注解
    @ControllerAdvice,如果需要返回json數(shù)據(jù),則?法需要加@ResponseBody
    @RestControllerAdvice, 默認(rèn)返回json數(shù)據(jù),?法不需要加@ResponseBody
  • ?法添加處理器
    捕獲全局異常,處理所有不可知的異常
    @ExceptionHandler(value=Exception.class)
    示例演示:

1.1 創(chuàng)建controller同級包handler

1.2 在handler包下創(chuàng)建異常處理類:CustomExceptionHandler

@RestControllerAdvice # 此注解表明該類為異常處理類
public class CustomExceptionHandler {

    @ExceptionHandler(value = Exception.class)  # 針對異常的處理方法
    RetData handlerException(Exception e, HttpServletRequest request) {
        // 定義全局異常標(biāo)識
        String errMsgPrefix = "服務(wù)器異常錯(cuò)誤: ";

        return  RetData.RetError(-2, errMsgPrefix + e.getMessage());
    }

}

1.3 編寫測試代碼測試

    @RequestMapping("list")
    public Object getList() {
        Map<String, String> map = new HashMap<>();

        int i = 1 / 0;  # 制造異常

        map.put("1", "jackyan");
        map.put("2", "daisy");

        return map;
    }

1.4 訪問接口結(jié)果輸出:

{
    "code": -2,
    "data": null,
    "message": "服務(wù)器異常錯(cuò)誤: / by zero"
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容