SpringBoot项目(18)—处理异常之@ExceptionHandler注解

  • Post author:
  • Post category:其他

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 版权协议,转载请附上原文出处链接和本声明。