CompletableFuture 已经完成但出现异常

CompletableFuture already completed with an exception

CompletableFuture.completedFuture() returns 已经用给定值完成的 CompletedFuture

如何构造一个已经异常完成的CompletableFuture

意思是,我希望未来抛出异常而不是返回值。

与Java 9 及更高版本不同,Java 8 不为这种情况提供静态工厂方法。可以改用默认构造函数:

CompletableFuture<T> future = new CompletableFuture<>();
future.completeExceptionally(exception);

Java 9 提供 CompletableFuture.failedFuture​(Throwable ex) 正是这样做的。