我参考了 Spring MVC 的@ExceptionHandler注释。
我希望我的 @ExceptionHandler-annotated 方法能够处理所有异常,但会忽略一两个特定异常。
这对 Spring MVC 3.2 可行吗?有什么解决方法吗?
我参考了 Spring MVC 的@ExceptionHandler注释。
我希望我的 @ExceptionHandler-annotated 方法能够处理所有异常,但会忽略一两个特定异常。
这对 Spring MVC 3.2 可行吗?有什么解决方法吗?
为什么不添加两个处理程序方法,例如
@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 注释来做到这一点。
一种可行的方法是为您提供HandlerExceptionResolver接口的实现。在您的实现中,您可以提供来自 @ExceptionHandler 方法的代码,并且只为您希望处理的异常执行它。
我认为对于 Spring MVC 来获取您的自定义 HandlerExceptionResolver,它只需要在您的 ApplicationContext 中注册为一个 bean。
我不确定这是否会有所帮助,但这是我会做的。
@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;
}