CompletableFuture.join()
Ждёт результат `CompletableFuture`; ошибки приходят как непроверяемые исключения.
Доступно с: Java 8
Синтаксис
public T join()Возвращаемое значение
TРезультат вычисления.
Примеры
Ошибка задачи при join():
void main() {
var failing = CompletableFuture.supplyAsync(() -> 10 / 0);
try {
failing.join();
} catch (CompletionException e) {
IO.println(e.getCause());
}
}Результат:
java.lang.ArithmeticException: / by zeroПримечания
Делает то же, что get(), но не требует обработки проверяемых исключений: ошибка задачи приходит обёрнутой в CompletionException. Поэтому join() удобен в лямбдах и потоках. Вызов блокирует текущий поток — в цепочке лучше продолжать через thenApply().
См. также
- Future.get() — Ждёт завершения задачи и возвращает её результат.
- CompletableFuture.supplyAsync() — Запускает вычисление асинхронно и возвращает `CompletableFuture`.
Вопросы и ответы по теме
В учебнике
- CompletableFuture — Асинхронные цепочки в Java — CompletableFuture.supplyAsync, thenApply, thenAccept, thenCombine, allOf, обработка ошибок через exceptionally и join.