Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
Java Spring@ExceptionHandler行为_Java_Spring_Exception Handling - Fatal编程技术网

Java Spring@ExceptionHandler行为

Java Spring@ExceptionHandler行为,java,spring,exception-handling,Java,Spring,Exception Handling,假设我在应用程序中使用了@ExceptionHandler 如果我定义: @ControllerAdvice public class MyExceptionHandler { @ExceptionHandler(value = Exception.class) public boolean generic(Exception e) { return e; } @ExceptionHandler(value =MyException.class

假设我在应用程序中使用了@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处理程序)?

异常处理程序将尝试查找特定的异常
MyException
处理程序首先,如果没有,它将尝试查找通用异常
异常

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

异常参数:声明为一般异常或 更具体的异常。如果 注释本身不会通过其 {@link#value()}。请求和/或响应对象(Servlet API 或Portlet API)


参考:

异常处理程序将首先尝试查找特定异常(
MyException
处理程序,否则将尝试查找通用异常(
异常

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

异常参数:声明为一般异常或 更具体的异常。如果 注释本身不会通过其 {@link#value()}。请求和/或响应对象(Servlet API 或Portlet API)


参考:

这可能会帮助您:是的,谢谢!当发生异常时,“ExceptionHandlerExceptionResolver将迭代这些ExceptionHandlerMethodResolver,并使用第一个可以处理异常的方法。”部分正是我所需要的。如果需要,您可以使用
@order
订购。这可能会帮助您:是的,谢谢!当出现异常时,“ExceptionHandlerExceptionResolver将迭代这些ExceptionHandlerMethodResolver,并使用第一个可以处理异常的方法。”部分正是我所需要的。如果需要的话,你可以用
@order
命令它们。好的,那么你说只会触发一个处理程序:具有最佳匹配的处理程序。好的,那么你说只会触发一个处理程序:具有最佳匹配的处理程序。