Как бросить проверенное исключение в 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
?