首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring @ExceptionHandler行为

Spring @ExceptionHandler行为
EN

Stack Overflow用户
提问于 2017-08-11 13:40:53
回答 1查看 500关注 0票数 0

假设我在我的应用程序中使用@ExceptionHandler

如果我定义:

代码语言:javascript
复制
@ControllerAdvice
public class MyExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public boolean generic(Exception e) {
        return e;
    }

    @ExceptionHandler(value =MyException.class)
    public boolean myException(MyException e) {
        return e;
    }
}

我的控制器抛出一个 MyException ,是否也会触发泛型异常处理程序,或者只执行与其最佳匹配的异常(这里是MyException处理程序)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-11 13:47:02

异常处理程序将首先尝试查找特定于的异常(MyException)处理程序,否则将尝试查找泛型异常(Exception)。

因此,对于您的示例,当控制器throw MyException时,处理程序将调用MyException处理程序。

异常参数:声明为一般异常或更具体的异常。如果注释本身不通过其{@link #value()}缩小异常类型,则这也用作映射提示。请求和/或响应对象(Servlet或Portlet )。

参考资料:https://github.com/spring-projects/spring-framework/blob/5f4d1a4628513ab34098fa3f92ba03aa20fc4204/spring-web/src/main/java/org/springframework/web/bind/annotation/ExceptionHandler.java#L33

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45636696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档