Handler 실행 실패는 경계별 의미를 보존해 번역한다

InvocationTargetException 하나만 보고 모두 500으로 만들면 사용자 입력과 업무 충돌을 구분할 수 없습니다.

plan lookup

route 없음 → 404

argument binding

형식·누락 → 400

handler invoke

업무 충돌 → 409 등

unexpected cause

내부 실패 → 500

response commit

write 실패 → close

핵심: 응답 commit 전까지 단계별 오류를 값으로 모아 마지막에 HTTP로 변환합니다.