日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot處理全局統一異常的實現

瀏覽:30日期:2023-04-25 11:03:41

在后端發生異常或者是請求出錯時,前端通常顯示如下

Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Jun 07 15:38:07 CST 2019There was an unexpected error (type=Not Found, status=404).No message available

對于用戶來說非常不友好。

本文主要講解如何在SpringBoot應用中使用統一異常處理。

實現方式

第一種:使用@ControllerAdvice和@ExceptionHandler注解 第二種: 使用ErrorController類來實現。

第一種:使用@ControllerAdvice和@ExceptionHandler注解

@Slf4j@ControllerAdvicepublic class GlobalExceptionHandler { @ResponseBody @ExceptionHandler(NullPointerException.class) public BaseResult globalException(HttpServletResponse response,NullPointerException ex){ log.info('GlobalExceptionHandler...');log.info('錯誤代碼:' + response.getStatus());BaseResult result = new WebResult(WebResult.RESULT_FAIL,'request error:'+response.getStatus() ,'GlobalExceptionHandler:'+ex.getMessage()); return result;}}

注解@ControllerAdvice表示這是一個控制器增強類,當控制器發生異常且符合類中定義的攔截異常類,將會被攔截。

可以定義攔截的控制器所在的包路徑

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface ControllerAdvice { @AliasFor('basePackages') String[] value() default {}; @AliasFor('value') String[] basePackages() default {}; Class<?>[] basePackageClasses() default {}; Class<?>[] assignableTypes() default {}; Class<? extends Annotation>[] annotations() default {};}

注解ExceptionHandler定義攔截的異常類

@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ExceptionHandler { Class<? extends Throwable>[] value() default {};}

第二種: 使用ErrorController類來實現。

系統默認的錯誤處理類為BasicErrorController,將會顯示如上的錯誤頁面。

這里編寫一個自己的錯誤處理類,上面默認的處理類將不會起作用。

getErrorPath()返回的路徑服務器將會重定向到該路徑對應的處理類,本例中為error方法。

@Slf4j@RestControllerpublic class HttpErrorController implements ErrorController { private final static String ERROR_PATH = '/error'; @ResponseBody @RequestMapping(path = ERROR_PATH ) public BaseResult error(HttpServletRequest request, HttpServletResponse response){ log.info('訪問/error' + ' 錯誤代碼:' + response.getStatus()); BaseResult result = new WebResult(WebResult.RESULT_FAIL,'HttpErrorController error:'+response.getStatus());return result; } @Override public String getErrorPath() { return ERROR_PATH; }}

測試

以上定義了一個統一的返回類BaseResult,方便前端進行處理。

package com.microblog.common.result;import java.io.Serializable;public class BaseResult implements Serializable { private static final long serialVersionUID = 1L; public static final int RESULT_FAIL = 0; public static final int RESULT_SUCCESS = 1; //返回代碼 private Integer code; //返回消息 private String message; //返回對象 private Object data; public BaseResult(Integer code, String message) { this.code = code; this.message = message; } public BaseResult(Integer code, String message, Object object) { this.code = code; this.message = message; this.data = object; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Object getData() { return data; } public void setData(Object data) { this.data = data; }}

編寫一個測試控制器

@Slf4j@RestController@RequestMapping('/user')public class TestController { @RequestMapping('/info1') public String test(){ log.info('/user/info1'); throw new NullPointerException('TestController have exception'); }}

1.發出一個錯誤的請求,也就是沒有對應的處理類。

從返回可以看到是由HttpErrorController類處理

{'code':0,'message':'HttpErrorController error:404','data':null}

2.發出一個正常的請求(TestController的test()處理),處理類中拋出空異樣

從返回中可以看出是由GlobalExceptionHandler類處理

{'code':0,'message':'request error:200','data':'GlobalExceptionHandler:TestController have exception'}

區別

1.注解@ControllerAdvice方式只能處理控制器拋出的異常。此時請求已經進入控制器中。

2.類ErrorController方式可以處理所有的異常,包括未進入控制器的錯誤,比如404,401等錯誤

3.如果應用中兩者共同存在,則@ControllerAdvice方式處理控制器拋出的異常,類ErrorController方式未進入控制器的異常。

4.@ControllerAdvice方式可以定義多個攔截方法,攔截不同的異常類,并且可以獲取拋出的異常信息,自由度更大。

到此這篇關于SpringBoot處理全局統一異常的實現的文章就介紹到這了,更多相關SpringBoot 全局統一異常內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费观看不卡av| 久久福利毛片| 亚洲涩涩av| 国产精品色网| 欧美日韩第一| 亚洲少妇自拍| 天堂资源在线亚洲| 免费av一区| 亚洲v在线看| 欧美日韩视频| 六月天综合网| 日韩三区四区| 国产精品中文字幕制服诱惑| 国产精品白丝久久av网站| 麻豆91精品视频| 中文字幕在线视频久| 91精品国产自产在线观看永久∴| 天堂av在线| 欧美成人久久| 日韩午夜视频在线| 免费看久久久| 免费一二一二在线视频| japanese国产精品| 亚洲精品动态| 久久亚洲黄色| 亚洲精品a级片| 国产日产高清欧美一区二区三区| 国产精品久久久久久久久久久久久久久 | 国产一区二区色噜噜| 亚洲啊v在线| 水野朝阳av一区二区三区| 日韩不卡一区二区三区| 欧美好骚综合网| 免费观看久久av| 日韩精品亚洲专区在线观看| 高清一区二区| 亚洲欧美日韩在线观看a三区| 国产亚洲一卡2卡3卡4卡新区| 欧美日韩中文一区二区| 午夜精品成人av| 国产欧美一区| 亚洲精选91| 久久精品亚洲人成影院 | 不卡av一区二区| 国产精品一级在线观看| 欧美日韩国产传媒| 国产96在线亚洲| 欧美片第1页综合| 免费在线观看日韩欧美| 日韩国产专区| 国产日韩免费| 日本不卡的三区四区五区| 日韩欧美自拍| 日本一区二区免费高清| 国产日韩视频在线| 免费观看在线综合| 香蕉国产精品| 久久久影院免费| 欧美激情另类| 精品国产欧美日韩| 国产一区二区亚洲| 精品一区二区三区中文字幕视频 | 三级欧美在线一区| 丝袜av一区| 午夜av不卡| 欧美成a人免费观看久久| 国产精品nxnn| 欧美aaaaaa午夜精品| 欧美国产偷国产精品三区| 国产在线一区不卡| 日韩av在线中文字幕| 激情中国色综合| 麻豆久久久久久久| 久久不卡日韩美女| 老牛国内精品亚洲成av人片| 国产日本亚洲| 国产精品大片免费观看| 精品国产亚洲一区二区三区在线 | 亚洲成人一区| 麻豆91精品视频| 欧美另类专区| 久久久久久一区二区| 日韩精品水蜜桃| 视频一区二区欧美| 精品亚洲a∨| 日韩中文字幕一区二区三区| 国产乱人伦丫前精品视频 | 巨乳诱惑日韩免费av| 日韩va亚洲va欧美va久久| 国产精品成久久久久| 亚洲欧美日韩专区| 九九色在线视频| 久久久久久夜| 亚洲精品伊人| 久久国产主播| 石原莉奈在线亚洲二区| 精品视频99| 日韩在线不卡| 国产精品天天看天天狠| 91一区二区三区四区| 亚洲精品乱码日韩| 久久99久久人婷婷精品综合| 捆绑调教日本一区二区三区| 香蕉国产精品| 国产精品亚洲四区在线观看| 久久精品播放| 欧美成人aaa| 成人在线超碰| 九九精品调教| 夜夜精品视频| 国产精品免费精品自在线观看| 精品国产中文字幕第一页| 一区二区三区四区日本视频| 国产一区清纯| 久久亚洲一区| 91精品婷婷色在线观看| 岛国av在线网站| 久久视频国产| 欧美性www| 亚洲午夜电影| 久草精品视频| 国产欧美日韩免费观看| 91p九色成人| 欧美日韩视频免费看| 97精品国产福利一区二区三区| 在线成人动漫av| 国产欧美日韩免费观看| 国产亚洲福利| 超碰成人av| 欧美视频二区| 欧美亚洲在线日韩| 国产亚洲毛片| 老司机精品视频网| 在线综合视频| 黄毛片在线观看| 久久99影视| 91精品福利观看| 涩涩涩久久久成人精品| 国产精品普通话对白| 精品午夜视频| 日韩一级网站| 国产极品嫩模在线观看91精品| 红桃视频亚洲| 欧美日韩中文一区二区| 精品视频网站| 石原莉奈在线亚洲二区| 老色鬼久久亚洲一区二区| 亚洲精品字幕| 2023国产精品久久久精品双 | 国产亚洲一区二区手机在线观看| 99国产精品久久久久久久成人热| 久久av导航| 在线精品亚洲| 日韩88av| 国产99在线| 麻豆国产精品777777在线| 国产精品久久久久久久久久10秀| 午夜欧美在线| 麻豆91在线播放| 欧美日韩黑人| 精品捆绑调教一区二区三区| 国产a亚洲精品| 不卡一二三区| 成人自拍av| 亚洲精品第一| 日韩黄色大片| 精品福利久久久| 欧美亚洲tv| 国产日韩中文在线中文字幕 | 欧美xxxx中国| 999国产精品| 精品91久久久久| 青青青国产精品| 国产午夜一区| 欧美日韩1区2区3区| 亚洲欧洲av| 国产欧美日韩一级| 狠狠久久伊人中文字幕| 精品欧美激情在线观看| 亚洲久久一区| 噜噜噜躁狠狠躁狠狠精品视频| 91精品一区二区三区综合| 伊人久久在线| 欧美国产一级| 亚洲少妇一区| 高清不卡亚洲| 国产综合精品一区| 亚洲深深色噜噜狠狠爱网站 | 美女一区网站| 国产精品.xx视频.xxtv| 欧美sm一区| 亚洲精品午夜av福利久久蜜桃| 亚洲精品va| 成人日韩av| 精品一区欧美| 欧美一区91| 91精品麻豆| 四虎影视精品| 国产精品主播| 蜜乳av另类精品一区二区|