gpt4 book ai didi

java - 从 Runnable 重新抛出已检查的异常

转载 作者:行者123 更新时间:2023-12-03 12:56:08 24 4
gpt4 key购买 nike

我从我的主类执行多个任务:

ExecutorService executor = Executors.newFixedThreadPool(N);
for (int i = 0; i < M; i++) {
executor.execute(task);
}

executor .shutdown();
while (!executor.isTerminated()){} //block

任务是一个类 implements Runnable .

run()方法,我调用一些带有检查异常的 api,这意味着我需要用 try-catch 块包围调用。
因此,我的主类无法知道抛出了异常。

我该如何解决这个问题?

最佳答案

您可以改用 Callable:

Callable<?> task = new Callable<Void> () {
public Void call() throws Exception {
someCodeThatThrowsCheckedExceptions();
return null;
}
}

然后:
Future<?> f = executor.submit(task);
try {
f.get();
} catch (ExecutionException e) {
System.out.println("task threw exception: " + e.getCause().getMessage());
}

关于java - 从 Runnable 重新抛出已检查的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957592/

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