Java - 在错误发生时立即从 2 个可调用对象中的任何一个捕获错误



我有两个可调用的任务同时运行,从主线程启动。这两个可调用对象中的任何一个都可能引发错误,我需要将此错误传递回主线程并在那里处理。此外,一旦错误发生在任一 Callable 中,我想在 main 中捕获它。但是,我看不出如何做到这一点。如果我只是等待两个期货的可赎回对象

try {
    future1.get();
    future2.get();
} catch (ExecutionException e) {
    // Handle the error...
}

然后我无法捕获错误,因为它发生在第二个可调用对象中。我必须等到第一个可调用对象完成,要么正常,要么它本身会抛出错误。

看不出我还能如何实现这一目标。对此有什么解决方案吗?

使用 ExecutorCompletionService。 它将对最近完成的可调用对象进行排队,在这种情况下,这将是第一个抛出错误的可调用对象。

相关内容

  • 没有找到相关文章

最新更新