1,只处理Controller内部的异常
@ExceptionHandler
public ModelAndView exceptionHandler(Exception e){
ModelAndView mv=new ModelAndView("error");
mv.addObject("exception",e);
System.out.println("local test");
return mv;
}
@RequestMapping("/error")
public String error(){
int i=5/0;
return "hello";
}
如上所示,在请求/error的时候,会发生异常,该异常会被@ExceptionHandler注解的方法捕获。
2,处理全局异常(所有controller)
@ControllerAdvice
public class ErrorController {
@ExceptionHandler
public ModelAndView exceptionHandler(Exception e){
ModelAndView mv=new ModelAndView("error");
mv.addObject("exception",e);
System.out.println("global test");
return mv;
}
}
被@ControllerAdvice注解的类会捕获所有controller的异常
对于抛出的异常,会首先被本Controller内的@ExceptionHandler捕获。