gpt4 book ai didi

java - Callable 而不是 Runnable 所以我不需要捕获

转载 作者:行者123 更新时间:2023-11-30 10:02:17 24 4
gpt4 key购买 nike

我按以下方式定义了一个 Future:

        Future<?>       future  = null;
ExecutorService service = null;

我首先使用(只是为了了解这些东西):

            future = service.submit(() -> {
for (int i = 0; i < 5; ++i) {
System.out.println("Printing record old: " + i);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// Ignore
}
}
});

但是我实在不喜欢try catch的部分,所以改写成:

            future = service.submit(() -> {
for (int i = 0; i < 5; ++i) {
System.out.println("Printing record: " + i);
Thread.sleep(5);
}
return "Done";
});

以这种方式,使用 Callable 而不是 Runnable,我不需要 catch。但是我返回了一个未使用的值。
这样做是否可以,或者有更好的方法吗?

最佳答案

是因为方法语法

Runnable Runnablerun 方法不会抛出任何异常,因此您需要使用 try catch 处理任何已检查的异常

void run()

Callable但是 Callablecall 方法抛出 Exception,所以你可以使用 try catch 处理或离开 JVM

V call() throws Exception

关于java - Callable 而不是 Runnable 所以我不需要捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57040395/

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