让我们说我在我的应用程序中使用 @ExceptionHandler 。
如果我定义:
@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处理程序) ?
答案 0 :(得分:2)
异常处理程序会首先尝试查找特定异常(MyException
)处理程序,否则会尝试找到通用例外(Exception
)。
因此,对于您的示例,当控制器throw
MyException
时,处理程序将调用MyException
处理程序。
异常参数:声明为一般异常或声明 更具体的例外。这也可以作为映射提示 注释本身不会通过它缩小异常类型 {@link #value()}。请求和/或响应对象(Servlet API 或Portlet API)。