繁体   English   中英

spring 启动异常 controller 示例

[英]spring boot exception controller example

我想处理 spring 启动时的错误响应。

这是我对未找到错误的默认错误响应。

{
"timestamp": "2020-12-09T02:37:03.698+00:00",
"status": 404,
"error": "Not Found",
"message": "",
"path": "/v1.0/test"}

我试图在我的自定义错误句柄 controller 上捕捉它,但不起作用。

@ControllerAdvice
@RestController
@RequestMapping("${server.error.path:${error.path:/error}}")
@RequiredArgsConstructor
public class ExceptionController {

private static final Logger logger = LoggerFactory.getLogger(ExceptionController.class);
private final BaseEntityVo baseEntityVo;

//uri not found
@ExceptionHandler({NoHandlerFoundException.class})
@ResponseStatus(HttpStatus.NOT_FOUND)
public BaseEntityVo notFoundException(HttpServletRequest httpServletRequest){
baseEntityVo.setError(ErrorConstant.SC_2007_URI_NOT_FOUND_ERROR.toString(httpServletRequest.getRequestURI()));
return baseEntityVo;
}

如何处理 404、405、415、500 和默认错误?

Spring DispatcherServlet的默认行为是在没有找到处理程序的情况下不抛出NoHandlerFoundException ,它自己处理响应。 您应该能够使用上述方法捕获其他异常,但如果您想提供自己的 404 响应,则需要使用throwExceptionIfNoHandlerFound初始化 DispatcherServlet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM