异常处理
局部的异常处理器,只针对某个控制器
// 专门定义一个处理异常的方法,如: ArrayIndexOutOfBoundsException 异常
@ExceptionHandler(Exception.class) // 异常处理器, 可以指定具体的异常类型
public String error(Exception e) {
System.out.println("进入了 ExceptionController error " + e.getMessage());
return "error";
}
全局的异常处理器,针对所有的控制器
@ControllerAdvice
public class Error {
@ExceptionHandler({ArithmeticException.class})
public String pub(ArithmeticException e)
{
System.out.println(e);
return "error";
}
}
注:局部的异常处理优先级高于全局的异常处理,因此两个都有的时候,会先执行局部,再到全局;
@ExceptionHandler :不能使用Map参数,只能使用ModelAndView作为返回值