0

我有一个带有以下签名的方法

我想在我的切入点捕获后记录异常,现在当我执行代码时它会在控制台上抛出异常打印然后来到我的切入点定义的方法,可能是因为它是@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
            }
4

1 回答 1

4

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

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

如果您事先知道您的异常情况,那么最好使用@Before切入点方法并处理异常情况。

于 2012-12-06T22:13:08.810 回答