SpringBoot项目(18)—处理异常之@ExceptionHandler注解
处理异常的ExceptionHandler必须要和出现异常的方法在同一个Controller下才可以
没有很好的复用性,代码冗余
1.在能产生异常的方法所在的controller类中,添加处理异常的方法
处理异常的方法用@ExceptionHandler注解,并且返回值不能是String,必须是ModelAndView
@ExceptionHandler注解可以指定多个异常的类型,通过value来进行指定,注意是.class
指定的时候一定要给全名,比如java.lang.NullPointerException.class,并用{}括起来
@ExceptionHandler(value = {java.lang.NullPointerException.class})
public ModelAndView nullpointExceptionHandler(Exception e){//注入Exception对象,他会把异常对象传递到这个方法当中,比如这里的异常对象是NullPointerException
ModelAndView mv = new ModelAndView();//新建一个ModelAndView对象
mv.addObject("err",e.toString());//将Exception中的异常信息取出来放入ModelAndView中,这样可以在异常页面中显示
mv.setViewName("error1");//设置要跳转的视图页面
return mv;
}
2.编写异常处理页面error1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Title</title>
</head>
<body>
出错了。。。
<span th:text="${err}"/>
</body>
</html>
通过标签的${err}取到异常信息
3.运行结果
浏览器显示:出错了。。。 java.lang.NullPointerException
版权声明:本文为weixin_44876147原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。