Когда я пытаюсь понять функциональность exceptionally
, я читаю несколько блогов и сообщений , но я не понимаю, что не так с этим кодом:
public CompletableFuture<String> divideByZero(){
int x = 5 / 0;
return CompletableFuture.completedFuture("hi there");
}
Я думал, что смогу перехватить исключение при вызове метода divideByZero
с exceptionally
или handle
, но программа просто печатает трассировку стека и завершает работу.
Я пробовал оба или handle
& exceptionally
:
divideByZero()
.thenAccept(x -> System.out.println(x))
.handle((result, ex) -> {
if (null != ex) {
ex.printStackTrace();
return "excepion";
} else {
System.out.println("OK");
return result;
}
})
Но результат всегда:
Исключение в потоке "main" java.lang.ArithmeticException: / по нулям