throw design

throw: 실패 정보를 타입으로 올려 보내는 지점

const char*, std::string, std::exception, 스택 풀기, RAII는 예외 객체와 자원 정리의 기준입니다.

예외 타입

표준 예외와 사용자 예외

catch 쪽에서 오류 종류를 타입으로 구분할 수 있습니다.

객체 복사

예외 객체 저장

받을 때 const 참조를 쓰면 불필요한 복사를 줄입니다.

스택 풀기

스택 풀림 소멸자

직접 해제보다 RAII가 중요한 이유가 여기에 있습니다.

terminate

미처리 예외 종료

경계 함수에서 로그와 사용자 메시지 정책을 준비합니다.

throw 위치 오류를 발견한 함수에서 충분한 맥락을 담아 던집니다.
catch 방식 값으로 받기보다 const 참조로 받아 타입 정보를 보존합니다.
RAII 파일과 메모리 같은 자원은 소멸자가 정리하도록 타입에 넣습니다.