页面不存在时不会抛出异常

时间:2018-03-19 16:59:35

标签: spring

我已经使用@ControllerAdvice定义了ExceptionHandler并捕获了以下内容

Exception.class,Throwable.class,SQLException.class

当用户输入服务器中不存在或不可用的页面时。圆形视图页面错误正在日志中显示,并且不会调用ExceptionHandler。

在CustomExceptionHandler中捕获API错误的常见检查点是什么?不确定是否有任何tomcat挂钩定义。

使用Spring Boot 2.0和Spring 5.0版

感谢。

1 个答案:

答案 0 :(得分:1)

如果:用户输入不存在的页面/资源,则不会抛出异常。所以你的代码不起作用(我相信你的代码类似于下面的代码)

@ControllerAdvice
public class ErrorHandler {
    @ExceptionHandler(Exception.class) 
    public String handle() {
     ....
     return "error"
    }

}

为了使其工作,您需要将您的处理程序类从ResponseEntityExceptionHandler扩展为

@ControllerAdvice
public class ErrorHandler extends ResponseEntityExceptionHandler {

   ...

}

你需要覆盖以下方法

  • handleHttpMediaTypeNotSupported
  • handleHttpMediaTypeNotSupported

详细指南可从中找到   - https://blog.jayway.com/2013/02/03/improve-your-spring-rest-api-part-iii/
  - http://www.baeldung.com/global-error-handler-in-a-spring-rest-api

另一种方法是,如果在所有一般情况下都有固定消息,您可以覆盖/error