- 当被切方法执行过程中抛出异常时,会进入 @AfterThrowing 注解的方法中执行,在该方法中可以做一些异常的处理逻辑。
- 要注意的是 throwing 属性的值必须要和参数一致,否则会报错。该方法中的第二个入参即为抛出的异常
参数 |
描述 |
argNames |
在没有调试信息的编译时,或者在运行时解释切入点时,通知声明中使用的任何参数的名称都不可用 |
pointcut |
要绑定通知的切入点表达式在指定时覆盖“value” |
throwing |
通知签名中要将抛出的异常绑定到的参数的名称 |
value |
要绑定通知的切入点表达式 |
示例
@Aspect @Component @Slf4j public class LogAspectHandler { /** * 在上面定义的切面方法执行抛异常时,执行该方法 * @param joinPoint jointPoint * @param ex ex */ @AfterThrowing(pointcut = "pointCut()", throwing = "ex") public void afterThrowing(JoinPoint joinPoint, Throwable ex) { Signature signature = joinPoint.getSignature(); String method = signature.getName(); // 处理异常的逻辑 log.info("执行方法{}出错,异常为:{}", method, ex); } } |