处理列出的所有异常,但一个例外使用Spring';s@ExceptionHandler注释
我参考的是SpringMVC的注释 我想让@ExceptionHandler注释方法处理所有异常,但一个或两个将被忽略的特定异常除外。处理列出的所有异常,但一个例外使用Spring';s@ExceptionHandler注释,spring,spring-mvc,Spring,Spring Mvc,我参考的是SpringMVC的注释 我想让@ExceptionHandler注释方法处理所有异常,但一个或两个将被忽略的特定异常除外。 Spring MVC 3.2是否可以实现这一点?有什么解决办法吗?我认为@ExceptionHandler注释没有办法做到这一点 一种可行的方法是提供接口的实现。在您的实现中,您可以从@ExceptionHandler方法中提供代码,并且只对您希望处理的异常执行它 我认为SpringMVC要获取您的定制HandlerExceptionResolver,只需要在A
Spring MVC 3.2是否可以实现这一点?有什么解决办法吗?我认为@ExceptionHandler注释没有办法做到这一点 一种可行的方法是提供接口的实现。在您的实现中,您可以从@ExceptionHandler方法中提供代码,并且只对您希望处理的异常执行它
我认为SpringMVC要获取您的定制HandlerExceptionResolver,只需要在ApplicationContext中注册为bean即可
@ExceptionHandler(value={Exception.class})
public ModelAndView all(){
return new ModelAndView();//return general M&V
}
@ExceptionHandler(value={Ex1.class, Ex2.class})
public ModelAndView special(){
return new ModelAndView();//return special M&V
}
我不确定这是否有帮助,但这是我应该做的
@ExceptionHandler(Throwable.class)
public ModelAndView handleException(Throwable throwable){
if (throwable != null){
if (throwable instanceof theExceptionYouWantToIgnore){
return new ModelAndView("customErrorPage");
}
//else do your normal business logic and set an appropriate error page
}
return errorPage;
}
您想忽略这些异常吗?我会将用户重定向到自定义错误页/view.AFAIK这不会起作用。原因是@ExceptionHandler注释的方法优先于HandlerExceptionResolver。所以任何异常抛出都不会被HandlerExceptionResolver捕获。谢谢Rob:我们实际上想避免这种情况,但我认为它确实有效。@shazinltc我认为注册自定义HandlerExceptionResolver将删除Spring MVC使用的默认HandlerExceptionResolver链。org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver将是此链的一部分,因此自定义HandlerExceptionResolver应该会阻止ExceptionHandler功能工作。但我刚刚尝试过。没有!如果我删除@ExceptionHandler注释的方法,它就会工作