gpt4 book ai didi

java - 在哪里捕获 Callable.call() 抛出的异常

转载 作者:行者123 更新时间:2023-12-02 07:44:27 27 4
gpt4 key购买 nike

Possible Duplicate:
Handling exceptions from Java ExecutorService tasks

我使用ExecutorService来自 Java,用于协调线程。为了启动我使用的线程

pool = new ExecutorService(2);
callableResults = pool.invokeAll(threads);

为了收集结果,我使用 future.get()对于每个线程。“threads”是来自实现 Callable 的类的对象列表并覆盖 call() .

现在我遇到了以下问题。方法call()确实抛出各种特定的异常。 invokeAll()future.get()只扔InterruptedException .

在哪里可以捕获我在 call() 中抛出的特定异常?或者我必须在那里处理它们?如果抛出这些异常之一,则结果是 InterruptedException

最佳答案

出事java.util.concurrent.Future.get()会抛出ExecutionException如果提供了可调用的过去抛出异常(异常存储在Future中)。

Exception thrown when attempting to retrieve the result of a task that aborted by throwing an exception. This exception can be inspected using the Throwable.getCause() method.

关于java - 在哪里捕获 Callable.call() 抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9534799/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com