Как бросить проверенное исключение в CompletableFuture?

Я использовал статический метод supplyAsync() чтобы получить CompletableFutureи назовите его whenComplete() способ справиться с результатом и исключением.

whenComplete() принимает BiConsumer в качестве параметра, и BiConsumerВторой параметр является Throwable, Но я обнаружил, что не могу бросить проверенное исключение в supply() метод. Если я это сделаю, Idea покажет подсказку "Необработанное исключение: java.lang.exception".

 public static void main(String[] args) {
    Integer i = 0;


    // unhandled exception
    CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> CompletableTest.getInt(i), executorService);
    future.whenComplete((res, e) ->
    {
        System.out.println("res is " + res);
        System.out.println("e is " + e);
    });

}

public static Integer getInt(Integer i) throws Exception {
        Thread.sleep(3000);
        return i + 1;
}

Я не совсем понимаю, whenComplete() может иметь дело с проверенным исключением, но я не могу его выбросить.

Можно ли бросить проверенное исключение в течение CompletableFuture?

0 ответов

Другие вопросы по тегам