예외 처리는 오류 흐름을 정상 흐름 밖으로 분리한다
오류가 발생하면 즉시 던지고, 호출 스택을 거슬러 올라가 처리할 catch를 찾는다.
throw예외 객체를 던지고 현재 실행 흐름을 중단한다.
→
stack unwinding스택을 되감으며 지역 객체를 정리한다.
→
catch타입이 맞는 처리 블록에서 복구 또는 종료를 결정한다.
반환값 방식호출자가 매번 검사해야 하며 누락되면 오류가 조용히
통과한다.
예외 방식오류 경로를 한곳으로 모아 정상 로직의 가독성을 지킨다.
try { risky(); } catch (const std::exception& e) { recover(e); }