问题描述
我刚刚开始使用 CompletableFuture 并且已经爱上它了。
但是在我使用 CompletableFuture 时出现的一件奇怪的事情是它的方法被称为“异常”
假设我有一个
CompletableFuture<?> cf1.
现在,一旦数据到达,我的代码就会应用一些处理逻辑。如果出现异常,我使用异常方法重新抛出MyCustomException
cf1
.thenApply(myData->Some Processing Logic)
.exceptionally(ex-> throw new MyCustomException())
cf.get();
有趣的是,对 get 方法的调用会无限期挂起,直到我终止程序。这是否意味着如果 CompletableFuture 从异常块中重新抛出异常,未来将不会被标记为完成?我需要明确地将其标记为完整吗?