checked exception은 run 경계 안에서 의미를 정해 처리한다
Runnable.run은 checked exception을 던지지 못하므로 복구·중단·상위 통지 중 하나를 선택합니다.
| 상황 | 처리 | 주의 |
|---|---|---|
| 지역 복구 가능 | catch 후 재시도 | 한도 설정 |
| 업무 실패 전달 | 결과 객체 | 호출자 회수 |
| 복구 불가 | unchecked로 변환 | 원인 보존 |
| interrupt | 종료·flag 복원 | 취소 의미 |
| 로그 | thread·task key | 중복 기록 방지 |
핵심: InterruptedException을 일반 실패처럼 삼키지 않고 취소 신호의 의미를 보존합니다.