当前位置: 首页 > 知识库问答 >
问题:

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

太叔鹏云
2023-03-14

我参考的是Spring MVC的@ExceptionHandler注释。

我希望我的@ExceptionHandler注释方法处理所有异常,但会忽略一两个特定异常。

这在Spring MVC 3.2中是否可行?有什么解决办法吗?

共有3个答案

卓致远
2023-03-14

我不确定这是否有帮助,但这是我应该做的。

@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;
}
权韬
2023-03-14

我认为@ExceptionHandler注释没有办法做到这一点。

一种可行的方法是提供HandlerExceptionResolver接口的实现。在您的实现中,您可以从@ExceptionHandler方法中提供代码,并且只对您希望处理的异常执行它。

我认为Spring MVC要获取您的自定义HandlerExceptionResolver,它只需要在您的Application Context中注册为bean。

微生承业
2023-03-14

为什么不添加两个处理程序方法,例如

@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正确处理所有自定义异常,排除 在验证jwm-token时,此异常只在一种情况下抛出。 这样,Console中有3个stacktraces日志: 仅前端重装 请告诉我,怎么了。 附注。完整StackTrace: null 2019-07-14 17:04:38.791错误24060---[nio

  • 有没有一种方法可以在Spring Boot异常处理程序中一次捕获从web请求抛出的所有异常?我知道我可以在用注释的方法中捕获异常类型数组,但它不是我所说的类型。我需要一个异常对象列表之类的东西。我已经试过了 但Spring无法找到合适的解析器: 它只捕捉一个可抛物体,工作很好: 但是,如果在同一请求中有不同的参数冲突,如和,该怎么办? 如果不可能处理异常列表,如何满足RFC-7807(参见http

  • 问题内容: 我正在使用Spring MVC 并处理REST Api的所有异常。对于Web MVC控制器抛出的异常,它工作正常,但对于Spring Security自定义过滤器抛出的异常,它不工作,因为它们在调用控制器方法之前运行。 我有一个自定义的spring安全过滤器,它执行基于令牌的身份验证: 使用此自定义入口点: 并使用此类来全局处理异常: 我需要做的是返回一个详细的JSON主体,即使对于s

  • 我使用Spring MVC的和来处理REST API的所有异常。它对web mvc控制器引发的异常很好,但对spring security自定义筛选器引发的异常不起作用,因为它们在调用控制器方法之前运行。 我有一个自定义Spring Security筛选器,它执行基于令牌的身份验证: 使用此自定义入口点:

  • 我在骆驼中有一个处理器,它正在向骆驼中的endpoint(apache骆驼)发送消息。 我在camel xml文件中有一个endpoint: 我从队列管理器中删除了队列sendQueue(使用IBM MQ),并尝试从处理器向该队列发送消息,捕获异常并在处理器本身中处理它。 问题是,当消息被发送到已删除队列时,我从未遇到异常。 我知道我可以在camel文件本身中使用异常处理程序,但我不能这样做,因为

  • 因此,我试图以通用的方式记录spring项目的控制器返回的所有未捕获的异常。我可以使用以下异常处理程序来完成此操作: 但是,对于方法的每次调用,由于方法中抛出的异常,会创建第二个错误日志:代码来自org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolveHandlerMethodExc