如何正确地捕获来自Executors的RuntimeExceptions?
- 论坛
- 如何正确地捕获来自Executors的RuntimeExceptions?
11 浏览
如何正确地捕获来自Executors的RuntimeExceptions?
假设我有以下代码:
ExecutorService executor = Executors.newSingleThreadExecutor(); executor.execute(myRunnable);
现在,如果myRunnable
抛出一个RuntimeExcpetion
,我该如何捕获它?一种方法是提供自己的ThreadFactory
实现给newSingleThreadExecutor()
并为其中的Thread
设置自定义的uncaughtExceptionHandler
。另一种方法是将myRunnable
包装到一个包含try-catch块的本地(匿名)Runnable
中。也许还有其他类似的解决方法。但是...不知怎的,这感觉有点不正当,我觉得不应该这么复杂。是否有更简洁的解决方案?