try-catch-throw

정상 입력은 값을 돌려주고, 실패 입력은 맞는 catch로 이동한다

safeDivide 예제는 예외가 정상 흐름을 어떻게 끊는지 보여 줍니다. 던져진 타입과 호환되는 catch만 실행됩니다.

정상 경로: denominator = 2
1
try 진입safeDivide(10, 2) 호출
2
throw 없음분모가 0이 아니므로 나눗셈 실행
3
정상 반환결과 5를 출력하고 다음 문장 계속
예외 경로: denominator = 0
1
throw 발생std::string("zero") 예외 객체 생성
2
남은 try 문장 건너뜀This line... 같은 코드는 실행되지 않음
3
타입 일치 catch 실행catch(const std::string&)가 복구 담당
catch는 위에서 아래로 검사됩니다. 더 구체적인 타입을 먼저 두고, 마지막에 catch(...)를 둡니다.