try, throw, catch, 예외 객체 참조는 실패 위치와 처리 위치를 연결하는 기본 골격입니다.
정상 흐름과 실패 흐름을 읽기 쉽게 분리합니다.
자원 정리는 RAII 객체에 맡기는 편이 안전합니다.
기반 예외를 먼저 받으면 파생 예외 처리 기회가 사라집니다.
catch(const std::exception& e) 형태가 자주 쓰입니다.