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

Spring Boot提供了WebExceptionHandler一个以合理的方式处理所有错误的方法。它在处理顺序中的位置就在WebFlux提供的处理程序之前,这被认为是最后一个处理程序。
对于机器客户端,它会生成一个JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,有一个“whitelabel”错误处理程序,它以HTML格式呈现相同的数据。您也可以提供自己的HTML模板来显示错误。
 
Postman截图: 结果是json 格式
浏览器截图:
自定义ErrorPage的Html:
在templates目录下添加 error页面,后缀根据模板引擎决定
 
定制此功能的第一步通常涉及使用现有机制,但替换或增加错误内容。为此,您可以添加一个类型的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 直接子类化并覆盖特定的方法。
posted @ 2018-10-07 14:56  Tom.汤  阅读(239)  评论(0编辑  收藏