java 拦截404_SpringMVC用ControllerAdvice如何拦截404错误

@ControllerAdvice(annotations = {RestController.class, Controller.class})

public class RestExceptionHandler {

private static final Logger LOGGER = LogManager.getLogger(RestExceptionHandler.class);

@ExceptionHandler(value = {IOException.class, RuntimeException.class})

@ResponseBody

@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)

private MyInfo illegalParamsExceptionHandler(Exception ex) {

。。。

}

@ExceptionHandler(value = {NoHandlerFoundException.class})

@ResponseStatus(HttpStatus.NOT_FOUND)

public ModelAndView noMapping(Exception ex) {

HttpServletRequest request= MyClass.getRequest();

LOGGER.error("error-----404---->" + request.getContextPath(), ex);

return new ModelAndView("errorpage/error");

}

}

第一个异常拦截可以,但是第二个404拦截就无效,断点也不进入。

搜索一下,有人说还要去某个地方注明一下抛出404异常,但是也无效

@Order(1)

public class WebInit implements WebApplicationInitializer {

@Override

public void onStartup(ServletContext container) throws ServletException {

AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();

DispatcherServlet dispatcherServlet = new DispatcherServlet(dispatcherContext);

dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);

}

}

求大神指点指点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值