在同一个controller中配置下面这个方法,在方法加上@ExceptionHandler注解,参数是一个异常类的数组,其中包含了可以处理的异常类型
如果行要获取异常信息,可以在参数中加上异常参数
如果想要将异常信息传到页面上,用放到map中是行不通的,应为这个用@ExceptionHandler注解是不允许传入map的
可以将异常信息放到ModelAndView对象中
@ExceptionHandler({ ArithmeticException.class })
public ModelAndView handlerArithmeticException(ArithmeticException ex) {
ModelAndView mv = new ModelAndView("error");
mv.addObject("exception", ex);
System.out.println("出现异常了" + ex);
return mv;
}
感觉在将异常信息放到controller中好像不太好,那么可以单独写一个异常处理的controller
具体代码如下,不需要配置什么东西著需要加上@controllerAdvice注解,其中的方法和上面的是一样的写法:
@ControllerAdvice
public class HandlerException {
@ExceptionHandler({ArithmeticException.class})
public ModelAndView handlerArithmeticException(ArithmeticException ex) {
ModelAndView mv = new ModelAndView("error");
mv.addObject("exception",ex);
System.out.println("-->出现异常了" + ex);
return mv;
}
}