一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot統一異常處理詳解

Spring Boot統一異常處理詳解

2020-08-05 11:13橘子不酸的博客 Java教程

我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。這個時候就需要統一異常處理了,這篇文章主要給大家介紹了Spring Boot如何進行統一異常處理的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。

Spring Boot中默認帶了error的映射,但是這個錯誤頁面顯示給用戶并不是很友好。

統一異常處理

通過使用@ControllerAdvice定義統一異常處理的類,而不是在每個Controller中逐個定義。

@ExceptionHandler用來定義函數針對的函數類型,最后將Exception對象和請求URL映射到URL中。

?
1
2
3
4
5
6
7
8
9
10
11
12
@ControllerAdvice
class ExceptionTranslator {
 public static final String DEFAULT_ERROR_VIEW = "error";
 @ExceptionHandler(value = Exception.class)
 public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
  ModelAndView mav = new ModelAndView();
  mav.addObject("exception", e);
  mav.addObject("url", req.getRequestURL());
  mav.setViewName(DEFAULT_ERROR_VIEW);
  return mav;
 }
}

實現error.html頁面展示

在templates目錄下創建error.html。

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8" />
 <title>統一異常處理</title>
</head>
<body>
 <h1>Error Handler</h1>
 <div th:text="${url}"></div>
 <div th:text="${exception.message}"></div>
</body>
</html>

返回使用Json格式

只需在@ExceptionHandler之后加入@ResponseBody,就能讓處理函數return的內容轉換為JSON格式

創建一個JSON返回對象,如:

?
1
2
3
4
5
6
7
public class ErrorDTO implements Serializable {
 private static final long serialVersionUID = 1L;
 private final String message;
 private final String description;
 private List<FieldErrorDTO> fieldErrors;
 //getter和setter省略
}

可以為指定的Exception添加異常處理

?
1
2
3
4
5
6
@ExceptionHandler(ConcurrencyFailureException.class)
 @ResponseStatus(HttpStatus.CONFLICT)
 @ResponseBody
 public ErrorDTO processConcurencyError(ConcurrencyFailureException ex) {
  return new ErrorDTO(ErrorConstants.ERR_CONCURRENCY_FAILURE);
 }

ErrorConstants.ERR_CONCURRENCY_FAILURE 是定義的一個異常信息。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: brazzers欧美教师| 爱福利视频一区 | 日韩国产欧美精品综合二区 | 精品一区二区三区视频 | 国产精品久久久久久爽爽爽 | 精品丰满人妻无套内射 | 色综合久久中文字幕 | 99精品久久99久久久久久 | 97香蕉超级碰碰碰久久兔费 | 四虎comwww最新地址 | 日本三级做a全过程在线观看 | dasd817黑人在线播放 | brazzers办公室 | 国产欧美日韩视频在线观看一区二区 | 人配人种视频xxxx | 99久久久无码国产精品 | 青青青手机视频 | 国产小情侣自拍 | 亚洲欧美另类在线观看 | 青青草99热这里都是精品 | 午夜第九达达兔鲁鲁 | 日日骑夜夜骑 | lilisha李丽莎喷水大胆在线 | 亚洲成年网站在线777 | 免费我看视频在线观看 | 国产精品污双胞胎在线观看 | 国产成人v爽在线免播放观看 | 美女张开腿黄网站免费精品动漫 | 满溢游泳池免费土豪全集下拉版 | 动漫精品一区二区三区3d | 男生操女生动态图 | 78成人网 | 国产一久久香蕉国产线看观看 | 99re热这里只有精品视频 | 欧美性xxxxx| 亚洲 综合 欧美在线视频 | 欧美一级片在线免费观看 | 亚洲国产在线播放 | 日本性爱 | 日本捏胸吃奶视频免费 | v视影院|