Java ControllerAdvice未按预期捕获异常
给定在处理Spring DispatcherServlet处理的请求时引发的异常 这个全局处理程序不应该“捕获”它吗Java ControllerAdvice未按预期捕获异常,java,spring,exception,model-view-controller,Java,Spring,Exception,Model View Controller,给定在处理Spring DispatcherServlet处理的请求时引发的异常 这个全局处理程序不应该“捕获”它吗 @ControllerAdvice 公共类例外ControllerAdvice{ @ExceptionHandler(Exception.class) 公共响应异常处理程序(异常处理程序){ ErrorResponse error=新的ErrorResponse(); error.setErrorCode(HttpStatus.INTERNAL_SERVER_error.valu
@ControllerAdvice
公共类例外ControllerAdvice{
@ExceptionHandler(Exception.class)
公共响应异常处理程序(异常处理程序){
ErrorResponse error=新的ErrorResponse();
error.setErrorCode(HttpStatus.INTERNAL_SERVER_error.value());
错误。setMessage(“请与管理员联系”);
返回新的响应状态(错误,HttpStatus.OK);
}
}
我执行的一些测试表明,这样的处理程序无法捕获格式化程序甚至DispatcherServlet本身抛出的异常,例如,在找不到合适的目标处理程序的情况下
这是预期的行为吗?我在这里遗漏了什么吗?这些异常是在控制器(或更高版本)中抛出的吗?也许它们是在调用控制器之前抛出的。当然是……但我希望在处理针对DispatcherServlet的请求时引发的所有异常都能被捕获。
@ControllerAdvice
public class ExceptionControllerAdvice {
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> exceptionHandler(Exception ex) {
ErrorResponse error = new ErrorResponse();
error.setErrorCode(HttpStatus.INTERNAL_SERVER_ERROR.value());
error.setMessage("Please contact your administrator");
return new ResponseEntity<ErrorResponse>(error, HttpStatus.OK);
}
}