Spring AOP:如何确定方法是否使用@After抛出异常? [英] Spring AOP: How to determine if method threw an exception using @After?

查看:0
本文介绍了Spring AOP:如何确定方法是否使用@After抛出异常?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Springdocs说:

必须准备好处理正常和异常之后的建议 退货条件。

@After("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")
public void doReleaseLock() {
    // ...
}

我想知道dataAccessOperation是正常完成还是异常完成。不幸的是,上面的代码片段将成为有史以来最无用的文档。我知道我可以分别使用AfterReturningAfterThrowing,甚至Around,但这不是重点。由于After存在,我应该能够使用它。

推荐答案

文档想说的是,无论是否抛出异常,您的@After建议都应该执行有效的操作。这并不意味着你可以从建议中确定它。如果应该做不同的事情,

  • 使用@AfterReturning@AfterThrowing,如果您的建议不涉及控制流且不处理任何异常,
  • 如果要实际捕获和处理引发的异常和/或修改调用前的方法参数或调用后的返回值,或完全跳过方法执行,请使用@Around建议。

这篇关于Spring AOP:如何确定方法是否使用@After抛出异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆