我有以下签名的方法

我想在切入点捕获后记录异常,现在执行我的代码时,将其抛出异常打印到控制台,然后转到切入点定义的方法,这可能是因为它是@AfterThoring注解,但没有@BeforeThrowing注释可用吗?请建议我该怎么办

public void jingleBell(){
        System.out.println("Jingle Bell Job...");
        throw new RuntimeException("test error");
    }


并遵循切入点的建议

@AfterThrowing(pointcut = "execution(* com.dc.lnwsk.adapter.Search.jingleBell())", throwing = "ex")
            public void handleException(Throwable ex){
                    //Log exception
            }

最佳答案

异常不同于methods,在调用切点方法之前,可以更改(编织)再见代码以调用新方法。

异常是运行时现象,JVM事先不知道会抛出一些异常,因此没有@BeforeThrowing。

如果您事先知道异常情况,则最好在切点方法上使用@Before并处理异常情况。

10-08 17:27