던질 때
throw MyException("file");
예외 객체의 생명 주기는 예외 처리 메커니즘이 관리하게 두고, catch에서는 복사 없이 실제 타입 정보를 읽는 것이 기본형입니다.
throw MyException("file");
런타임이 예외 객체를 보관하고 스택 풀기를 진행합니다.
catch (const MyException& e)
소유권은 런타임에 맡기고, catch는 복사 없이 메시지와 실제 타입을 읽습니다.
누가 delete할지 불분명해지고 누수와 중복 해제 위험이 catch로 넘어옵니다.
throw std::runtime_error(...) + catch (const std::exception& e).