Future.get은 정상·실패·취소·대기 중단의 네 결과를 보존한다

ExecutionException을 단순 문자열로 바꾸면 실제 작업 실패 원인을 잃습니다.

Future 완료 결과get 또는 timed get

정상

T 값 반환

작업 실패

ExecutionException.getCause

취소

CancellationException

호출자 중단

InterruptedException

핵심: 호출자는 각 결과를 재시도·상위 실패·취소로 명시적으로 매핑합니다.