首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CompletableFuture异常链

CompletableFuture异常链
EN

Stack Overflow用户
提问于 2022-07-14 01:52:09
回答 1查看 46关注 0票数 1

我希望等待多个事件,并决定尝试用CompletableFuture实现这一点。

代码语言:javascript
复制
CompletableFuture a1 = new CompletableFuture();
CompletableFuture a2 = new CompletableFuture();
CompletableFuture a3 = new CompletableFuture();
CompletableFuture b = new CompletableFuture();
CompletableFuture subFuturesA= CompletableFuture.allOf(a1, a2, a3);
CompletableFuture andB = CompletableFuture.allOf(b, subFuturesA);
andB.handle((result, exception) -> { System.out.println("Test"); return result; });

如果我完成所有的未来:

代码语言:javascript
复制
a1.complete(null);
a2.complete(null);
a3.complete(null);
b.complete(null);

字符串测试是打印出来的。但是,如果在一个事件中出现错误并使用a1.completeExceptionally(new IllegalStateException());,则不会打印字符串。它还在等待其他人完成。如何组合completableFutures,使一个completeExceptionally触发句柄方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-14 05:45:55

根据文档,从allOf方法创建的CompleteableFuture将在

所有给定的CompletableFutures都完成了。

他们都必须完成一个组合完成,否则它将不会做它的工作,无论一个完全例外。

您可以为每个CompleteableFuture创建一个“特殊”的anyOf,然后将它们与一个anyOf组合起来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72974365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档