springboot异常处理之404
ps: 推荐一下本人的通用后台管理项目crowd-admin 以及newbee-mall增强版,喜欢的话给个star就好
开始这篇博文的时候我们先回顾下spring
异常处理的几种机制
异常处理机制
-
@ExceptionHandle
注解处理异常处理单个controller内部抛出的指定异常
-
@ControllerAdvice+@ExceptionHandler
注解处理异常处理所有controller内部抛出的指定异常
-
自定义
HandlerExceptionResolver
类处理异常全局异常处理
事件经过
先说博主最近遇到的问题,在老的spring项目中用@RestControllerAdvice
注解定义的全局异常处理类是按如下方式来处理404请求的:
/**
* 处理404异常
*
* @param e
* @param request
* @return
*/
@ExceptionHandler(NoHandlerFoundException.class)
public Object handle404Exception(NoHandlerFoundException e, HttpServletRequest request) {
logger.error(e.getMessage(), e);
if (HttpUtil.isAjax(request)) {
return Response.error("您请求路径不存在,请检查url!");
}
return new ModelAndView("error/404");
}
但是在新的springboot项目中,博主这样定义时是无法捕获到404请求的