【问题标题】:Is it possible to disable Spring Boot's autoexception handling from application.properties是否可以从 application.properties 禁用 Spring Boot 的自动异常处理
【发布时间】:2017-05-15 15:29:37
【问题描述】:

是否可以从 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 定义 它自己的后备错误页面 - 所谓的“Whitelabel Error Page” (只有 HTTP 状态信息和任何错误的最小页面 详细信息,例如来自未捕获异常的消息)。如果你 将 error.html 模板重命名为 error2.html 然后重新启动,你 会看到它被使用。

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

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

【问题讨论】:

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


    【解决方案1】:

    将以下行添加到您的 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
             }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-03-07
      • 2021-07-10
      • 2023-03-28
      • 2015-02-23
      • 2016-09-29
      • 1970-01-01
      • 2022-11-22
      • 2022-06-30
      • 1970-01-01
      相关资源
      最近更新 更多