@ExceptionHandler(Exception.class)不处理所有类型的异常

Spr*_*ser 7 java spring exception-handling spring-boot

我正在尝试使用处理所有类型的异常 @ExceptionHandler(Exception.class)。但这并不能处理所有类型的异常。

当我尝试从邮递员/浏览器访问错误的HTTP方法时,没有收到任何响应空白页。

能否请任何人告诉我为什么我没有得到任何答复,或者告诉我我在代码中做错了什么?

    @Order(Ordered.HIGHEST_PRECEDENCE)
    @ControllerAdvice
    public class RestExceptionHandler extends ResponseEntityExceptionHandler {


        @ExceptionHandler(Exception.class)
        public ResponseEntity<ExceptionMessage> handleAllExceptionMethod(Exception ex,WebRequest requset,HttpServletResponse res) {


            ExceptionMessage exceptionMessageObj = new ExceptionMessage();

            exceptionMessageObj.setStatus(res.getStatus());
            exceptionMessageObj.setError(ex.getLocalizedMessage());     
            exceptionMessageObj.setException(ex.getClass().getCanonicalName());
            exceptionMessageObj.setPath(((ServletWebRequest) requset).getRequest().getServletPath());  

            return new ResponseEntity<ExceptionMessage>(exceptionMessageObj, new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR);          
        } 
Run Code Online (Sandbox Code Playgroud)

Kar*_*cki 10

要么覆盖ResponseEntityExceptionHandler#handleExceptionInternal(),要么不扩展ResponseEntityExceptionHandler

@Order(Ordered.HIGHEST_PRECEDENCE)on a @ControllerAdviceshould work beforeResponseEntityExceptionHandler根据此答案调用,这表明需要 Spring Framework 4.3.7。