①创建类加上@ControllerAdvice注解进行标识
@ControllerAdvice
public class MyControllerAdvice {
}
②定义异常处理方法
定义异常处理方法,使用@ExceptionHandler标识可以处理的异常。
@ControllerAdvice
public class MyControllerAdvice {
@ExceptionHandler({NullPointerException.class,ArithmeticException.class})
public ModelAndView handlerException(Exception ex){
//如果出现了相关的异常,就会调用该方法
String msg = ex.getMessage();
ModelAndView modelAndView = new ModelAndView();
//把异常信息存入域中
modelAndView.addObject("msg",msg);
//跳转到error.jsp
modelAndView.setViewName("/WEB-INF/page/error.jsp");
return modelAndView;
}
}
③注入容器
可以使用注解注入也可以使用xml配置注入。这里使用注解注入的方式。在类上加@Component注解,注意要保证类能被组件扫描扫描到。
@ControllerAdvice
@Component
public class MyControllerAdvice {
//省略无关代码
}