예외 전파를 이해할 때는 실패 타입, 복구 위치, 자원 정리 책임을 같이 봅니다. 아무 곳에서나 잡는 것이 좋은 처리는 아닙니다.
| 질문 | 좋은 기준 | 나쁜 신호 |
|---|---|---|
| 누가 복구할 수 있나? | 대체 입력, 재시도, 사용자 메시지를 만들 수 있는 계층 | 아무 처리 없이 바로 다시 던짐 |
| 어떤 타입을 던지나? | std::exception 계열이나 의미 있는 사용자 정의 타입 | 문자열/숫자만 던져 원인 추적 불가 |
| 자원은 누가 정리하나? | 스택 풀림 중 RAII 객체의 소멸자가 자동 정리 | new/delete 수동 정리에 의존 |
| 잡은 뒤 무엇을 하나? | 로그, 복구, 변환, 사용자에게 안전한 메시지 제공 | 모든 예외를 숨기고 정상처럼 계속 |