如果業務方法捕獲不會拋出的異常,那麼拋出的建議是否會被調用?在Spring中拋出建議
0
A
回答
1
如果建議適用於業務方法,則拋出通知不會被調用,因爲它不會看到異常。
如果你想「讓你的蛋糕(或例外)和吃它」分開業務邏輯到另一種方法。例如
public void myBusinessLogic()
{
try
{
myBusinessLogicImpl();
}
catch (BusinessLogicException ex)
{
}
}
然後,您可以添加異常通知到myBusinessLogicImpl()
方法,以及吞嚥了異常。
0
如果你使用Spring AOP(大多數情況下),aspect將不會被調用。本質上,代碼應該是這樣的:
業務方法:
public void businessMethod() {
try {
doSomething();
} catch(BusinessException e) {
//handle and not rethrow
}
看點:
try {
businessMethod();
} catch(BusinessException e) {
//Aspect advice
}
正如你可以看到有沒有辦法方面都不能「看到」的例外。如果你真的想要BusinessException
被攔截,即使它不能從businessMethod()
轉義出來,純粹的AspectJ而不是Spring AOP可能會伎倆。它與Spring很好地集成,但需要執行一些核心步驟(編譯或加載時間編織)。
相關問題
- 1. dataSource.getConnection在Spring中拋出NullpointerException
- 2. spring jdbc.query()建議
- 3. @周圍建議拋出錯誤
- 4. 在Java中拋出異常需要建議
- 5. Spring - RestTemplate拋出InvalidMediaTypeException
- 6. Acknowledgement.acknowledge()在spring-kafka中拋出異常@KafkaListener
- 7. Hibernate在Spring事務中拋出TransactionRequiredException
- 8. Spring AOP的 - 建議在子類中
- 9. 如何在Spring Webflow中建議flowcope bean
- 10. 爲什麼Spring在Hibernate拋出ObjectNotFoundException異常時不拋出DataAccessException?
- 11. Spring MVC驗證拋出ConstraintViolationException
- 12. Spring JDBCTemplate總是拋出QueryTimeOutException
- 13. Spring-aop拋出的異常
- 14. spring 3 AOP異常建議
- 15. Spring AOP:選擇建議
- 16. CRUD with Spring MVC - DRY建議
- 17. Spring AOP建議叫做Twice
- 18. Spring中的Sql綁定拋出org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException
- 19. Spring Boot在啓動時拋出BeanCreationException
- 20. AspectJ對Spring安全性的建議安全性ProviderManager在啓動時拋出異常
- 21. 在Doctrine2/Symfony2中創建索引拋出
- 22. 我應該使用Spring.Net AOP拋出建議嗎?
- 23. Nest SuggestCompletion用法,拋出'不是完成建議字段'異常
- 24. Eclipse在建議彈出框中凍結
- 25. 會議在Spring MVC
- 26. 在回調中拋出IDBTransaction拋出TransactionInactiveError
- 27. Spring AOP - 設置關於POJO getter的建議 - 不建議
- 28. 拋出:NoSuchAlgorithmException:TLSv1.2工作未知協議
- 29. freeze_graph.py拋出構建
- 30. 創建時發生Spring bean拋出錯誤