是否可以从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
答案 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
}
}