예외 타입은 복구 코드가 판단할 정보를 담아야 한다

C++은 여러 값을 던질 수 있지만, A급 예외 설계는 catch가 의미를 읽을 수 있는 타입을 고르는 일이다.

primitive숫자·문자만으로는 실패 의미가 약함
std::exception표준 메시지와 공통 부모 제공
custom type도메인별 복구 정보를 구조화
catch policy구체 타입부터 넓은 타입 순서로 배치
던질 타입복구 코드가 읽는 정보판정
int/string원인과 범위가 코드 밖 약속에 의존작은 예제 외에는 약함
runtime_error메시지와 표준 부모 타입을 제공기본 선택지
custom exception필드로 원인·위치·복구 힌트 전달업무 규칙에 적합
catch(...)타입 정보를 잃은 마지막 방어선로그 후 재전파 고려

핵심 좋은 예외 타입은 “무슨 일이 났는가”와 “어떻게 복구할 것인가”를 catch에 전달한다.