Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ControllerAdvice未按预期捕获异常_Java_Spring_Exception_Model View Controller - Fatal编程技术网

Java ControllerAdvice未按预期捕获异常

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

给定在处理Spring DispatcherServlet处理的请求时引发的异常

这个全局处理程序不应该“捕获”它吗

@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);
    }
}