是否可以从application.properties禁用Spring Boot的自动异常处理

时间:2017-05-15 15:29:37

标签: java spring spring-boot properties exception-handling

是否可以从application.properties禁用Spring Boot的自动异常处理?

我正在尝试禁用Spring Boots常规异常处理,而无需在编码时重命名error.html,并在生产时从application.properties启用它。

我在Spring文档中找到了以下内容:

  

在启动时,Spring Boot会尝试查找/ error的映射。通过   约定,以/ error结尾的URL映射到相同的逻辑视图   名称:错误。在演示应用程序中,此视图依次映射到   error.html Thymeleaf模板。 (如果使用JSP,它将映射到   error.jsp根据你的设置   的InternalResourceViewResolver)。

     

如果找不到/ error到View的映射,Spring Boot定义   它自己的后备错误页面 - 所谓的“白标错误页面”   (仅包含HTTP状态信息和任何错误的最小页面   详细信息,例如来自未捕获的异常的消息)。如果你   将error.html模板重命名为,例如,error2.html然后重启,你   会看到它被使用。

我还尝试了以下不起作用的属性:

server.error.path=/somewrongurl
server.error.whitelabel.enabled=false

1 个答案:

答案 0 :(得分:0)

将以下行添加到application.properties文件

spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false

定义您自己的异常控制器以捕获所有相关的异常,如

    @ControllerAdvice
    public class ExceptionController {

         @ExceptionHandler(value = Exception.class)
         public ResponseEntity<?> handleException(Exception e) {
             //handle your exception
         }
    }