값으로 던지고, const 참조로 읽는다

예외 객체의 생명 주기는 예외 처리 메커니즘이 관리하게 두고, catch에서는 복사 없이 실제 타입 정보를 읽는 것이 기본형입니다.

던질 때

throw MyException("file");

예외 저장소

런타임이 예외 객체를 보관하고 스택 풀기를 진행합니다.

잡을 때

catch (const MyException& e)
권장

값으로 throw, 참조로 catch

소유권은 런타임에 맡기고, catch는 복사 없이 메시지와 실제 타입을 읽습니다.

피함

포인터를 throw

누가 delete할지 불분명해지고 누수와 중복 해제 위험이 catch로 넘어옵니다.

기본형: throw std::runtime_error(...) + catch (const std::exception& e).