从javadocs,
AllOf()如果任何给定的 CompletableFutures都是异常完成的,则返回的CompletableFuture也会这样做,其中一个CompletionException将此异常作为其原因。
AnyOf()如果异常完成,返回的CompletableFuture也会这样做,CompletionException将此异常作为其原因。
这是否意味着allOf()和anyOf()在任何CompletableFuture抛出异常时都以相同的方式运行?
问题在于这句话
返回的CompletableFuture也这样做
出现在这两个方法中,而没有显式提到何时发生异常。
发布于 2019-01-28 04:17:22
不完全是。anyOf给出了任何一个期货的结果来完成,无论是否例外。直到所有已通过的期货完成,包括异常完成的期货,allOf才能完成。如果任何期货异常完成,第一次例外情况将反映在结果中。
基本上,anyOf的一个例外总是来自于一个已经完成的未来,而对于allOf,它可能来自任何一个。
https://stackoverflow.com/questions/54395446
复制相似问题