Spring AOP:如何确定方法是否使用@After抛出异常? [英] Spring AOP: How to determine if method threw an exception using @After?
本文介绍了Spring AOP:如何确定方法是否使用@After抛出异常?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Springdocs说:
必须准备好处理正常和异常之后的建议 退货条件。
@After("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")
public void doReleaseLock() {
// ...
}
我想知道dataAccessOperation
是正常完成还是异常完成。不幸的是,上面的代码片段将成为有史以来最无用的文档。我知道我可以分别使用AfterReturning
和AfterThrowing
,甚至Around
,但这不是重点。由于After
存在,我应该能够使用它。
推荐答案
文档想说的是,无论是否抛出异常,您的@After
建议都应该执行有效的操作。这并不意味着你可以从建议中确定它。如果应该做不同的事情,
- 使用
@AfterReturning
与@AfterThrowing
,如果您的建议不涉及控制流且不处理任何异常, - 如果要实际捕获和处理引发的异常和/或修改调用前的方法参数或调用后的返回值,或完全跳过方法执行,请使用
@Around
建议。
这篇关于Spring AOP:如何确定方法是否使用@After抛出异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文