异常通知 ‹aop∶afterthrowing›

Exisi 2022-11-28 08:36:42
Categories: Tags:


语法

<aop:afterthrowing method="执行方法" pointcut="切入表达式"  throwing="t"/>

 

<aop:afterthrowing method="执行方法" pointcut-ref="切入表达式id" throwing="t"/>

 

参数

描述

method

在通知类中设置当前通知类别对应的方法

pointcut

设置当前通知对应的切入点表达式,不能同时使用pointcut-ref

pointcut-ref

设置当前通知对应的切入点id,不能同时使用pointcut

throwing

自定义变量,注意的是 throwing 属性的值必须要方法的参数名一致,否则会报错

示例

<aop:aspect ref="adviceId">

    <!--直接配置切入点-->

    <aop:afterthrowing method="afterThrowing" pointcut="execution(* com.exi.service.LogAspectHandler.*.*(..))"/>

</aop:aspect>

 

<aop:pointcut id="pt" expression="execution(* com.exi.service.LogAspectHandler.*.*(..))"/>

<aop:aspect ref="adviceId">

    <!--使用公共切入点-->

    <aop:afterthrowing method="afterThrowing" pointcut-ref="pt"/>

</aop:aspect>

 

public class LogAspectHandler {

    public void afterThrowing(JoinPoint joinPoint, Throwable ex) {

        Signature signature = joinPoint.getSignature();

        String method = signature.getName();

        // 处理异常的逻辑

        log.info("执行方法{}出错,异常为:{}", method, ex);

    }

}