@ExceptionHandler
是一个注解,用于Spring框架中的Java应用程序。在使用Spring MVC时,我们可以使用 @ExceptionHandler
来定义一个方法,这个方法专门用来处理特定异常
当控制器(Controller)或者其他处理HTTP请求的Spring组件中抛出异常时,Spring会寻找标有 @ExceptionHandler
注解且匹配异常类型的方法来处理这些异常。具体来说,它允许你处理控制器内部发生的异常,避免了编写大量的try-catch块,和将异常处理逻辑与业务逻辑混在一起
这个注解简化了异常处理,提供了一种声明性的错误处理机制。可以将其看作是Spring的一种切面编程(AOP)实践,使得可以在一个地方集中处理类似的异常而无需在每个方法中重复相同的异常处理代码。
添加了@ExceptionHandler注解的方法,其形参类型决定它所捕获的异常类型。
如果有多个 @ExceptionHandler
方法能匹配同一异常,Spring会选择最匹配的那个方法来处理。例如,如果你有两个处理方法,一个参数是异常的子类型,另一个是父类型,当抛出该子类型异常时,Spring会调用参数为子类型的处理方法。