Java execturorService - 提交任务并捕获异常



我正在尝试将任务提交给Java中的ExecutorService。它要么需要一个允许抛出异常的可调用对象,要么需要一个可运行的。我的用例就像傻瓜一样:我想安排一个抛出异常的任务,但是一个无效的方法。因此,我无法使用 Callable 或 Runnable,因为方法定义与我的用例不匹配。我还想从我提交后收到的未来传播我的例外。有什么想法吗?

您可以使用Callable<Void>.显然,您无法实例化 Void 对象,而只需返回null.

Future<Void>,你仍然可以调用get,丢弃null返回值。它将重新抛出任何异常作为ExecutionException

您可以使用Callable<Void>(或任何其他类参数)并始终返回null,在这种情况下,Future.get包装并重新抛出任务引发的任何异常,或者使用Callable<Throwable>并让任务的主体

try {
// do stuff
} catch(Throwable t) {
return t;
}
return null;

在这种情况下,Future.get返回异常。在这两种情况下,成功的任务都将从其Future.get返回null

相关内容

  • 没有找到相关文章

最新更新