gpt4 book ai didi

java - 为什么@AfterReturning 只在@AfterThrowing 之后执行异常?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:56:32 26 4
gpt4 key购买 nike

我有以下内容:

@AfterReturning("executionOfTrustedAnnotatedMethod()")
public void afterReturningFromTrustedMethodExecution() { ... }

@AfterThrowing(pointcut = "executionOfTrustedAnnotatedMethod()")
public void afterThrowingByExecutionOfTrustedAnnotatedMethod() { ... }

我观察到这种对我来说没有意义的行为:

  • 如果这个切入点捕获的方法没有抛出异常,则执行@AfterReturning
  • 如果方法抛出异常,@AfterReturning只有在@AfterThrowing存在的情况下才会执行,并且先执行

我想要完成的是在方法执行结束时运行一些代码,而不管是否抛出异常。但是现在这段代码运行两次(如果我有 afterReturning 和 afterThrowing)或者根本不运行(如果我只有 afterReturning)如果抛出异常。

有什么建议吗?

谢谢,彼得

最佳答案

如果你想在方法之后执行代码而不管是否抛出异常,你需要使用 @After 代替。

关于java - 为什么@AfterReturning 只在@AfterThrowing 之后执行异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com