我想提交一個任務到Java中的ExecutorService。它需要一個Callable,它允許拋出一個異常,或者它需要一個Runnable。我的用例是愚蠢的:我想安排一個任務,拋出一個異常,但是是一個無效的方法。因此,我無法使用Callable或Runnable,因爲方法定義與我的用例不匹配。我還希望我的未來能夠在提交後收到的未來中傳播。有任何想法嗎?java execturorService - 提交任務和捕獲異常
1
A
回答
3
您可以使用Callable<Void>
。顯然你不能實例化一個Void對象,但是隻返回null
。
從Future<Void>
起,仍然可以撥打get
,丟棄null
的返回值。它將重新拋出任何異常,如ExecutionException
。
1
您可以使用Callable<Void>
(或任何其他類參數),並始終返回null
,在這種情況下Future.get
將包裝和重新拋出由任務拋出的任何異常,或使用Callable<Throwable>
和你的任務的主體是
try {
// do stuff
} catch(Throwable t) {
return t;
}
return null;
在這種情況下Future.get
將回報例外。在這兩種情況下,成功的任務將從其Future.get
返回null
。
相關問題
- 1. 捕獲異常的Seam提交
- 2. C# - 任務異常未被捕獲
- 3. 捕獲任何web服務異常?
- 4. 如何在java fx應用程序中捕獲任務異常?
- 5. 捕獲異常和
- 6. 在Java中捕獲異常
- 7. Java異常未被捕獲?
- 8. Java IO異常捕獲
- 9. Java異常未被捕獲
- 10. 的Java IO捕獲異常
- 11. 在Java中捕獲異常
- 12. Java異常未捕獲
- 13. Java異常未捕獲?
- 14. java - 異常未被捕獲
- 15. 同時捕獲java異常FileNotFound和IOException
- 16. Java何時捕獲一般異常和特定異常
- 17. 從任務中捕獲異步HttpWebRequest調用異常
- 18. 異步任務致命異常 - 線程正在退出,未捕獲的異常
- 19. C#任務獲得的結果或捕獲異常
- 20. 捕獲異常
- 21. 捕獲異常
- 22. 捕獲異常
- 23. 異常捕獲
- 24. 捕獲空異常
- 25. JNA捕獲異常
- 26. java捕捉異常
- 27. jvm異常捕獲
- 28. 如何從容器管理的事務提交中捕獲異常?
- 29. 將捕獲異常捕獲該異常的父類
- 30. 拋出異常並捕獲異常?