std::bad_alloc, std::out_of_range, throw, catch, main 전파는 실패를 값 반환과 다른 경로로 보냅니다.
호출자가 매번 확인하지 않으면 실패가 조용히 지나갑니다.
정상 반환 경로와 분리되어 코드 의도가 뚜렷해집니다.
여러 계층을 건너뛴 오류도 한 곳에서 다룰 수 있습니다.
끝까지 잡히지 않으면 프로그램 종료로 이어집니다.