我有一個帶有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. 如何重新引發異常?
- 2. Rails的rescue_from重新引發異常
- 3. 重新引發異常的ExecutorService
- 4. 異常在Groovy中
- 5. 如何在異常處理塊中重新引發pl/sql異常?
- 6. 如何在Rails rescue_from語句中重新引發Ruby異常?
- 7. 在PHP中引發異常?
- 8. 在Rcpp中引發異常
- 9. 在greenlets中引發異常
- 10. Xcode在重構時引發異常
- 11. 引發異常
- 12. 引發異常
- 13. 引發異常
- 14. 引發異常
- 15. );引發異常
- 16. 如何立即重新引發任何工作線程中引發的異常?
- 17. 從異常中追溯而不重新引發它們
- 18. 如何在scheduleWithFixedDelay引發異常時重新啓動計劃?
- 19. 如何在不同的線程上重新引發異常?
- 20. 在引用者中引發異常
- 21. Groovy異常
- 22. 如何取消並在Task.WhenAll引發異常時引發異常?
- 23. 在python中更新'常量'屬性引發異常
- 24. MySQL在創建表時引發異常,但僅在Java中引發異常?
- 25. ReplaceOne引發重複鍵異常
- 26. Android:AchartEngine重量圖表layout.addView引發異常
- 27. AsyncCallback引發異常
- 28. C++引發異常
- 29. HttpSessionListener引發異常?
- 30. Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment引發異常
的你有什麼任何示例代碼? –