欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring boot 学习笔记 1 - 自定义错误

程序员文章站 2023-10-17 14:10:41
Spring Boot提供了WebExceptionHandler一个以合理的方式处理所有错误的方法。它在处理顺序中的位置就在WebFlux提供的处理程序之前,这被认为是最后一个处理程序。 对于机器客户端,它会生成一个JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,有 ......
spring boot提供了webexceptionhandler一个以合理的方式处理所有错误的方法。它在处理顺序中的位置就在webflux提供的处理程序之前,这被认为是最后一个处理程序。
对于机器客户端,它会生成一个json响应,其中包含错误,http状态和异常消息的详细信息。对于浏览器客户端,有一个“whitelabel”错误处理程序,它以html格式呈现相同的数据。您也可以提供自己的html模板来显示错误。
 
postman截图: 结果是json 格式
Spring boot 学习笔记 1 -  自定义错误
浏览器截图:
Spring boot 学习笔记 1 -  自定义错误
自定义errorpage的html:
Spring boot 学习笔记 1 -  自定义错误
在templates目录下添加 error页面,后缀根据模板引擎决定
Spring boot 学习笔记 1 -  自定义错误
 
定制此功能的第一步通常涉及使用现有机制,但替换或增加错误内容。为此,您可以添加一个类型的bean errorattributes。
要更改错误处理行为,可以实现errorwebexceptionhandler并注册该类型的bean定义。由于a webexceptionhandler的级别较低,因此spring boot还提供了一种方便的方式abstracterrorwebexceptionhandler,让您以webflux功能的方式处理错误,如以下示例所示:
public class customerrorwebexceptionhandler extends abstracterrorwebexceptionhandler {
// define constructor here
@override
protected routerfunction<serverresponse> getroutingfunction(errorattributes errorattributes) {
return routerfunctions
.route(apredicate, ahandler)
.androute(anotherpredicate, anotherhandler);
}
}
要获得更完整的图片,您还可以defaulterrorwebexceptionhandler 直接子类化并覆盖特定的方法。