如何正确地捕获来自Executors的RuntimeExceptions?

11 浏览
0 Comments

如何正确地捕获来自Executors的RuntimeExceptions?

假设我有以下代码:

ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(myRunnable);

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

0