Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理列出的所有异常,但一个例外使用Spring';s@ExceptionHandler注释_Spring_Spring Mvc - Fatal编程技术网

处理列出的所有异常,但一个例外使用Spring';s@ExceptionHandler注释

处理列出的所有异常,但一个例外使用Spring';s@ExceptionHandler注释,spring,spring-mvc,Spring,Spring Mvc,我参考的是SpringMVC的注释 我想让@ExceptionHandler注释方法处理所有异常,但一个或两个将被忽略的特定异常除外。 Spring MVC 3.2是否可以实现这一点?有什么解决办法吗?我认为@ExceptionHandler注释没有办法做到这一点 一种可行的方法是提供接口的实现。在您的实现中,您可以从@ExceptionHandler方法中提供代码,并且只对您希望处理的异常执行它 我认为SpringMVC要获取您的定制HandlerExceptionResolver,只需要在A

我参考的是SpringMVC的注释

我想让@ExceptionHandler注释方法处理所有异常,但一个或两个将被忽略的特定异常除外。


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注释的方法,它就会工作