throw 순간 남은 try는 멈추고 catch를 찾는다
예외가 던져지면 현재 블록을 빠져나가며, 스택 정리 후 타입이 맞는 catch로 이동한다.
실행 중try 안에서 조건 검사
throw예외 객체를 만들고 현재 흐름 중단
unwind지나온 함수의 지역 객체 정리
catch처리 가능한 타입을 만나면 복구
| 경로 | 실행 | 결과 |
|---|---|---|
| 정상 | throw가 발생하지 않음 | try 아래 문장을 계속 실행 |
| 예외 | throw 아래 문장을 건너뜀 | 가장 가까운 호환 catch 탐색 |
| 미처리 | 맞는 catch가 없음 | 호출자 쪽으로 계속 전파 |
| 복구 후 | catch 블록이 끝남 | catch 뒤의 정상 흐름으로 합류 |
핵심: throw는 값을 돌려주는 문장이 아니라, 복구 가능한 경계까지 제어를 옮기는 신호다.