catch (const std::invalid_argument&)
나누기 0처럼 인자 오류를 구체적으로 처리합니다.
여러 예외를 처리할 때는 구체적인 타입을 먼저 두고, 일반 타입과
catch (...)는 마지막 방어선으로 둡니다.
catch (const std::invalid_argument&)
나누기 0처럼 인자 오류를 구체적으로 처리합니다.
catch (const OutOfRangeException&)
사용자 정의 예외도 의미가 선명한 위치에서 잡습니다.
catch (const std::exception&)
표준 예외 계층의 공통 처리와 로깅을 담당합니다.
catch (...)
타입을 모르는 예외를 잡는 최후의 안전망입니다.
예외 객체를 참조로 받아 복사를 피하고 파생 타입 정보도 보존합니다.
std::exception을 맨 위에 두면 자식 예외의 전용 처리
기회를 잃습니다.