예외 처리 선택 기준

throw 설계 점검표

예외는 던지는 순간보다 잡히는 방식까지 함께 설계해야 안전합니다.

01

던질 타입

std::invalid_argument, std::runtime_error처럼 의미가 드러나는 표준 예외를 우선합니다.

std::exception 계층
02

전달 방식

예외 객체는 값으로 던지고 catch에서는 const 참조로 받아 복사와 slicing을 줄입니다.

throw value
03

피할 방식

new로 만든 포인터 예외는 delete 책임이 흩어져 누수와 이중 해제 위험을 만듭니다.

no pointer throw
04

RAII 정리 경계

파일, 뮤텍스, 메모리는 지역 RAII 객체가 소멸자에서 정리하도록 둡니다.

RAII cleanup

예외 전달·자원 정리: 기본값은 표준 예외를 값으로 던지고 const 참조로 잡는 것입니다. 자원 정리는 RAII 객체에 맡기면 stack unwinding 중에도 누수가 줄어듭니다.