页面跳转形式:
前端templates下增加error.html页面
异常助手类 @controlleradvice 里的@exceptionhandler(value=exception.class)
controlleradvice
ExceptionHandler
添加@ControllerAdvice注解来捕获异常
SpringBoot配置全局的异常捕获
配置异常捕获的原因:自带的异常机制返回的页面相对来说,不是很人性化,对于用户来说,抛出一个异常,可读性差,像500或者404。
首先需要创建一个异常捕获类,在该类上添加@ControllerAdvice,并且需要实现errorHandler这个方法,该方法有三个参数分别为HttpServletRequest、HttpServletResponse、捕获的异常Exception,该方法上需要添加@ExceptionHandler这个注解,然后就可以在这个方法中对该异常进行处理 了,如图,它是先在后台打印该异常,并且返回一个ModelAndView,把e的内容放入,以及放入放生错误的地址,然后再放入了一个错误页面,该页面是自己定义的,而不是SpringBoot自带的页面,该页面也是需要进行配置的。
1、页面跳转形式:
2、ajax形式:ajax捕获异常:
3、对以上两种进行集成,统一返回异常的形式:
统一的异常处理类ExceptionHandler
类:@ControllerAdvice
方法:@ExceptionHandler(value=Exception.class)
40%
SpringBoot 全局异常
springboot 异常捕获
request.getRequestURI()
只能得到err/error 无法像老师的效果一样,附带上ip和端口号
ControllerAdvice
ExceptionHandler
结合方法型注解@ExceptionHandler,用于捕获Controller中抛出的指定类型的异常,从而达到不同类型的异常区别处理的目的;
结合方法型注解@InitBinder,用于request中自定义参数解析方式进行注册,从而达到自定义指定格式参数的目的;
结合方法型注解@ModelAttribute,表示其标注的方法将会在目标Controller方法执行之前执行。
————————————————
版权声明:本文为CSDN博主「zxfryp909012366」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zxfryp909012366/article/details/82955259
SpringBoot global exception handler
Springboot的全局异常捕获
页面跳转形式
@ControllerAdvice:声明处理异常的类
@ExceptionHandler:声明处理异常的方法,value的值表示异常的类型
使用modelAndview进行页面数据的返回
注意,当发生异常时,不会跳转到到controller中的指定页面,而是在异常处理类中指定的跳转页面,即viewName属性的值
统一异常处理
SpringBoot配置全局异常捕获
@ControllerAdvice //助手类
public class ExceptionHandler{
@ExceptionHandler(value=Exception.class)
public Object errorHandler(HttpServletRequest request, HttpServletResponse response, Exception e) throws Exception {
e.printStactTrace();
ModelAndView mav = new ModelAndView();
mav.addObject("exception", e);
mav.addObject("url", request.getRequestURL());
mav.setViewName(错误页面地址);
return mav;
}
}
捕获异常助手类
注解方式进行异常捕获:
当发生异常时,页面跳转到自定义的错误页面。
助手类 捕捉异常助手类
springboot 配置全局的异常捕获
自定义异常Error的页面
统一的异常捕获的类
springboot exceptoin handler
@ControllerAdvice
@ExceptionHandler(value=Exception.class)
public Object errorHandler(HttpServletREquest request, HttpServletResponse response, Exception ex) throws Exception {
ex.printStackTrace();
ModelAndView mv = ModelAndView();
mv.addObject("exception", ex);
mv.addObject("url", request.getRequestURL());
mv.setViewName('error/page');
return mv;
}
页面跳转形式
springboot 全局异常捕获
捕获异常类
haibucuo
@ControllerAdvice全局异常捕获
自定义错误页