C++ · RAII

throw 이후 스택 풀림과 소멸자 호출

예외가 던져지면 호출 스택을 거슬러 올라가며 지역 객체의 소멸자가 역순으로 실행됩니다.

throw 이후 스택 풀림과 소멸자 호출 구조

unwinding
throw현재 함수에서 예외 발생
frame pop스택 프레임을 역순으로 정리
~destructor지역 RAII 객체가 자원 해제
catch처리 가능한 핸들러에서 복구
throwframe pop~destructorcatch

throw 이후 스택 풀림과 소멸자 호출 기준

점검
RAII파일, mutex, heap 자원을 객체 수명에 묶습니다.
소멸자소멸자는 예외를 밖으로 던지지 않는 설계가 안전합니다.
누수 방지수동 release보다 scope 종료 정리에 맡기는 편이 견고합니다.
catch 위치처리할 수 있는 계층에서만 예외를 잡아 의미를 보존합니다.