CompletedFuture уже завершен с исключением
CompletableFuture.completedFuture() возвращает CompletedFuture
, который уже заполнен заданным значением.
Как мы можем построить CompletableFuture
, который уже выполнен исключительно?
То есть, вместо того, чтобы возвращать значение, я хочу, чтобы будущее генерировало исключение.
Ответы
Ответ 1
В отличие от Java 9 и более поздних версий, Java 8 не предоставляет статический метод фабрики для этого сценария. Вместо этого можно использовать конструктор по умолчанию:
CompletableFuture<T> future = new CompletableFuture<>();
future.completeExceptionally(exception);
Ответ 2
Java 9 предоставляет CompletableFuture.failedFuture(Throwable ex)
, которая именно это и делает.