InterruptedException은 취소 결정을 가진 계층에서 처리한다
낮은 유틸리티가 신호를 삼키면 상위 작업이 중단 요청을 알 수 없습니다.
| 계층 | 선택 | 적합한 경우 |
|---|---|---|
| worker loop | 정리 후 break | 현재 업무 종료 책임 |
| 중첩 유틸 | re-interrupt 후 반환 | 상위 결정 |
| 결과 API | Outcome.cancelled | 상태로 전달 |
| 호출 가능 API | throws 전달 | checked 허용 |
| 금지 | 빈 catch | 취소 유실 |
핵심: 정리 후 종료할지, flag 복원 후 반환할지, 도메인 결과로 바꿀지 책임을 분명히 합니다.