stack propagation

functionC의 throw는 functionB를 지나 functionA의 catch로 올라간다

처리할 catch가 현재 함수에 없으면 예외는 호출자를 향해 올라가고, 지나가는 함수의 남은 코드는 실행되지 않는다.

functionAtry로 전체 호출을 감싼 복구 지점
functionB중간 호출자, catch가 없으면 통과
functionC실패를 감지하고 throw 실행
catch in A타입이 맞으면 여기서 복구
위치일어나는 일다음 흐름
functionC실패 조건을 만나 예외 객체를 던진다즉시 현재 함수 탈출
functionBcatch가 없으므로 남은 문장을 건너뛴다호출자 functionA로 전파
스택 풀림지나온 함수의 지역 객체 소멸자 실행RAII 자원 정리
functionA호환되는 catch가 예외를 받는다복구 코드 실행

핵심 예외 전파는 “던진 곳”에서 “복구 가능한 곳”까지 호출 스택을 거슬러 올라가는 흐름이다.