说明
springboot配置ExceptionHandler不仅可以统一处理全局异常,还可以用来自定义404、405返回。
自定义404、405
- 配置application.yml
# 捕获404异常需要开启以下配置,其它异常无需开启
spring:
mvc:
throw-exception-if-no-handler-found: true
resources:
add-mappings: false
- 编写java
@RestControllerAdvice
@Slf4j
public class ExceptionHandle {
@ExceptionHandler(Exception.class)
public Object handlerException(Exception e) {
// 请求接口地址不存在 404
if (e instanceof NoHandlerFoundException) {
// Response是自定义的一个返回对象
return new Response(Constant.NoHandlerFound, e.getMessage());
}
// 请求方法不支持 405
if (e instanceof HttpRequestMethodNotSupportedException) {
return new Response(Constant.MethodNotSupported, e.getMessage());
}
//其他异常都可以捕获
return new Response(Constant.sysError, Constant.sysError);
}
}