在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。@ControllerAdvice官方文档。创建全局异常处理类:通过使用@ControllerAdvice定义统一的异常处理类,而不是在每个Controller中逐个定义。@ExceptionHandler用来定义函数针对的异常类型,最后将Exception对象和请求URL映射到error.html中.

v新建异常捕获类

统一异常处理

package com.demo.common;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; /**
* Created by toutou on 2018/12/9.
*/
@ControllerAdvice
public class CatchGlobalException {
@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("error");
return mav;
} }

verror page

实现error.html页面展示:在templates目录下创建error.html,将请求的URL和Exception对象的message输出。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<head lang="en">
<meta charset="UTF-8" />
<title>抱歉,这是一个错误页</title>
</head>
<body>
<div>很抱歉,这是我们的一个错误页</div>
<div>影响的因素有很多,我们会尽快解决的。 ﹃_﹃〣</div>
<div th:text="${url}"></div>
<div th:text="${exception.message}"></div>
</body>
</html>

v效果

在Controller中"创建"一个异常。

    @RequestMapping("/debug")
public String Debug(){
int number = 5 / 0;
return null;
}

运行效果如下:

v源码地址

https://github.com/toutouge/javademosecond/tree/master/hellospringboot

作  者:请叫我头头哥

出  处:http://www.cnblogs.com/toutou/

关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

最新文章

  1. HBase学习
  2. javascript学习笔记(四):事件处理函数和动态创建html标记。
  3. VS开发好用的扩展
  4. 如何闪开安装VS2013必须要有安装IE10的限制
  5. 利用URLScan工具过滤URL中的特殊字符(仅针对IIS6)-- 解决IIS短文件名漏洞
  6. LA 2402 (枚举) Fishnet
  7. Linux SocketCan client server demo hacking
  8. NIS 服务器
  9. CSU1312:榜单(模拟)
  10. 手把手教你在openshift上搭建wordpress博客(二)
  11. golang(2):beego 环境搭建
  12. Spring Thread Pool 线程池的应用
  13. linux下安装rabbitmq
  14. python学习08
  15. Servlet(五):一个Servlet处理多个请求
  16. hdu 4825 &amp;&amp; acdream 1063 01字典树异或问题
  17. quartz简单定时任务【可以处理完一个任务才开启下一个线程】【我】
  18. LeetCode: Subsets 解题报告
  19. lamdba 性能测试 大数据内存查找
  20. Mina 系列(四)之KeepAliveFilter -- 心跳检测

热门文章

  1. Network Security final project---War Game
  2. JDBC连接Oracle错误ORA-00922: 选项缺失或无效
  3. Cordova打包vue项目生成Apk (解决cordova build android抛出的zip问题)
  4. LeetCode 15 3Sum [sort] &lt;c++&gt;
  5. vue 学习
  6. 邮件服务器 postfix
  7. 菜鸡谈OO 第一单元总结
  8. ndk编译ffmpeg
  9. Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
  10. php设计模式2