Java 8 CompletableFuture.exceptionally 메서드의 이상한 동작이 발생했습니다. 이 코드를 실행하면, 그것을 잘 작동 및 인쇄 java.lang.RuntimeException
Java 8 CompletableFuture의 놀라운 동작 예외적 인 메서드
CompletableFuture<String> future = new CompletableFuture<>();
future.completeExceptionally(new RuntimeException());
future.exceptionally(e -> {
System.out.println(e.getClass());
return null;
});
하지만 원래 제외 java.util.concurrent.CompletionException
에 thenApply
처럼, 향후 처리에서 예외 유형 변경을 또 다른 단계를 추가 할 경우 내부 감쌌다.
CompletableFuture<String> future = new CompletableFuture<>();
future.completeExceptionally(new RuntimeException());
future.thenApply(v-> v).exceptionally(e -> {
System.out.println(e);
return null;
});
왜 이런 일이 발생해야합니까? 제 생각에는 꽤 놀라운 일입니다.