spring boot 1.5.4 統一異常處理(九)
上一篇:springboot 1.5.4 配置文件詳解(八)
1 Spring Boot統一異常處理
Spring Boot中實現了默認的error映射,但是在實際應用中,上面你的錯誤頁面對用戶來說並不夠友好,我們通常需要去實現我們自己的異常提示。
以springboot項目為例,進行處理!
springboot項目源碼:
https://git.oschina.net/wyait/springboot1.5.4.git
1.1 創建全局異常處理類
通過使用@ControllerAdvice定義統一的異常處理類,而不是在每個Controller中逐個定義。@ExceptionHandler用來定義函數針對的異常類型,最後將
/**
*
* @項目名稱:spring-boot-jsp
* @類名稱:GlobalExceptionHandler
* @類描述:全局異常處理類
* @創建人:wyait
* @創建時間:2017年6月28日下午4:06:08
* @version:
*/
@ControllerAdvice
public classGlobalExceptionHandler {
publicstatic final String DEFAULT_ERROR_VIEW = "error";
@ExceptionHandler(value= Exception.class)
publicModelAndView defaultErrorHandler(HttpServletRequest req, Exception e)
throwsException {
ModelAndViewmav = new ModelAndView();
mav.addObject("exception",e);
mav.addObject("url",req.getRequestURL());
mav.setViewName(DEFAULT_ERROR_VIEW);
returnmav;
}
}
1.2 編寫error.html
在templates目錄下創建error.html,將請求的URL和Exception對象的message輸出。
<!DOCTYPE html>
<html>
<head>
<metacharset="UTF-8"/>
<title>This is Exceptionhtml</title>
</head>
<body>
<h1>ErrorHandler</h1>
<divth:text="${url}"></div>
<divth:text="${exception.message}"></div>
</body>
</html>
在HelloController裏添加:1/0代碼。
啟動,訪問:
如果沒有exception異常,比如:404,頁面效果是:
通過實現上述內容之後,我們只需要在Controller中拋出Exception,當然我們可能會有多種不同的Exception。然後在@ControllerAdvice類中,根據拋出的具體Exception類型匹配@ExceptionHandler中配置的異常類型來匹配錯誤映射和處理。
spring boot系列文章:
spring boot 1.5.4 概述(一)
spring boot 1.5.4 入門和原理(二)
spring boot 1.5.4 之web開發(三)
spring boot 1.5.4 整合JSP(四)
spring boot 1.5.4 集成devTools(五)
spring boot 1.5.4 集成JdbcTemplate(六)
spring boot 1.5.4 集成spring-Data-JPA(七)
spring boot 1.5.4 配置文件詳解(八)
spring boot 1.5.4 統一異常處理(九)
spring boot 1.5.4 定時任務和異步調用(十)
本文出自 “架構的路上” 博客,請務必保留此出處http://wyait.blog.51cto.com/12674066/1969162
spring boot 1.5.4 統一異常處理(九)