如何在可调用中完成异常处理
2022-09-03 01:27:57
我知道callable的调用可以将异常抛给调用它的父方法,而runnable不是这种情况。
我想知道如何,因为它是一个线程方法,是线程堆栈中最底层的方法。
我知道callable的调用可以将异常抛给调用它的父方法,而runnable不是这种情况。
我想知道如何,因为它是一个线程方法,是线程堆栈中最底层的方法。
Callable
的要点是将异常抛出到调用线程,例如,当您获得提交 .Future
callable
public class CallableClass implements Callable<String> {
...
}
ExecutorService executor = new ScheduledThreadPoolExecutor(5);
Future<Integer> future = executor.submit(callable);
try {
System.out.println(future.get());
} catch (Exception e) {
// do something
}
Callable.call()
不能是最底部的堆栈帧。它始终由另一个方法调用,然后该方法将捕获异常。 通常应该用于异步计算值,然后使用对象获取它们。该操作可能会引发一个异常,稍后当您尝试获取 的值时,该异常会被重击。Callable
Future
Future
Runnable
只是应该运行一个不返回任何内容的操作。所有异常处理都应在 内完成,因为目前尚不清楚应如何处理任何抛出的异常。(来自 的异常通常与Runnable
Runnable.run()
Callable
Future
)