我有一個帶有try-catch語句的groovy腳本。現在我想重新提出異常,以便調用者也可以對該異常做出反應。有沒有規範的方法來做到這一點?在Groovy中重新引發異常
0
A
回答
1
你有什麼將是很好的例子......
但你的意思是這樣的:
Transaction tx = startTransaction()
try {
tx.doSomething()
tx.commit()
}
catch(ex) {
tx.rollback()
throw new MyTransactionFailedException("rolling back", ex)
}
+0
我不喜歡在這個特定情況下重新拋出相同的捕獲異常(我知道這是*你的情況,而不是OP的)。如果你捕捉了一堆不同的異常類型並立即重新拋出其中的一些,那看起來合法。但是,如果你在catch塊內進行一些處理(就像在這種情況下那樣),我認爲它提高了代碼的可調試性,以將異常包裝在一個新的異常中,然後拋出異常。否則,堆棧解除期間發生回滾的事實可能會在堆棧跟蹤中丟失。 – BalRog
+0
是的,我同意你的意見。答案已更新 –
相關問題
- 1. 重新引發異常的ExecutorService
- 2. 如何在異常處理塊中重新引發pl/sql異常?
- 3. 如何在Rails rescue_from語句中重新引發Ruby異常?
- 4. Xcode在重構時引發異常
- 5. 引發異常
- 6. 引發異常
- 7. 如何在不同的線程上重新引發異常?
- 8. 從異常中追溯而不重新引發它們
- 9. 在引用者中引發異常
- 10. Groovy異常
- 11. 在python中更新'常量'屬性引發異常
- 12. openFileOutput引發異常
- 13. didSelectRowAtIndexPath引發異常
- 14. dequeueReusableCellWithIdentifier:引發異常
- 15. HttpSessionListener引發異常?
- 16. 引發Java.Lang.Thread.DefaultUncaughtExceptionHandler異常
- 17. 不引發異常
- 18. FileIOPermission.GetPathList引發異常?
- 19. ObjectDataSource引發異常
- 20. UpdateModel引發異常
- 21. SqlConnection引發異常
- 22. Twitter更新狀態引發異常
- 23. 在Python 3中已經存在異常時引發異常
- 24. 當引發異常時,EDT是否重新啓動?
- 25. 引發另一個異常的異常
- 26. 更好的語法只有在發生異常時纔會重新引發異常?
- 27. 在Windows10中引發EOleSysError異常
- 28. 在SML中引發異常編譯
- 29. 在JUnit中測試引發的異常
- 30. 如何在Delphi中引發異常?
的你有什麼任何示例代碼? –