throw 아래 줄은 건너뜀
try {
throw std::runtime_error("fail");
saveResult(); // 실행되지 않음
}
throw는 return처럼 현재 흐름을 끝냅니다. 예외 객체는 복사 비용과 타입 손실을 줄이기 위해 보통 const 참조로 받습니다.
try {
throw std::runtime_error("fail");
saveResult(); // 실행되지 않음
}
catch (const std::exception& e) {
log(e.what());
}
실패 가능성이 있는 좁은 범위만 감쌉니다.
호출자가 의미를 알 수 있는 타입을 던집니다.
복구 가능한 곳에서 구체적인 타입부터 처리합니다.