我有 spring mvc 应用程序。为了捕捉异常,我使用@ExceptionHandler注释。
@ControllerAdvise
public class ExceptionHandlerController {
@ExceptionHandler(CustomGenericException.class)
public ModelAndView handleCustomException(CustomGenericException ex) {
....
}
}
Run Code Online (Sandbox Code Playgroud)
但我认为我只会在控制器方法调用后捕获异常。
但是如何捕获在 rest 上下文之外生成的异常呢?例如生命周期回调或计划任务。
我编写了以下控制器来处理我的代码中的所有异常:
@Controller
public class ErrorHandlerController {
@ExceptionHandler(value = Exception.class)
public String redirectToErrorPage(Model model){
model.addAttribute("message", "error on server");
return "errorPage";
}
}
Run Code Online (Sandbox Code Playgroud)
但看起来像下面的异常处理程序只有在异常抛出时才会起作用 ErrorHandlerController
我有很多控制器.请教我如何为所有控制器编写一个ExceptionHandler?
PS
我知道我可以使用继承但我不确定这是最好的决定.