패닉 조사는 출력 한 줄과 실행 전후 선택지를 함께 묶는다
원인 줄을 찾는 일, 스택 정리 방식을 이해하는 일, 이후
Result로 전환할지 판단하는 일이 하나의 흐름이다.
콘솔 신호
panic message
실패 종류와 값 범위를 먼저 확인한다.
source location
내 파일의 줄 번호가 직접 수정 지점이 된다.
backtrace option
호출 흐름이 필요하면 환경 변수로 자세히 본다.
01
증상 고정
패닉 메시지의 값, 조건, 파일 위치를 그대로 기록한다.
02
내 코드 찾기
백트레이스에서 표준 라이브러리보다 내 파일 첫 등장을 본다.
03
전제 확인
인덱스, 길이, 입력 값, 상태 불변식 중 무엇이 틀렸는지 분리한다.
04
수정 선택
버그는 조건을 고치고, 사용자 상황은 오류 반환으로 바꾼다.
05
종료 정책
릴리즈에서
unwind와 abort 중 의도한 방식을
확인한다.
| 상황 | 해석 | 권장 처리 |
|---|---|---|
| 내 코드 인덱스 오류 | 자료구조 길이에 대한 전제가 틀어졌다. | 범위 검사, 안전한 조회, 테스트 케이스를 추가한다. |
| 외부 입력 오류 | 사용자가 고칠 수 있는 실패일 가능성이 있다. |
Result와 오류 메시지로 돌려준다.
|
| 불변식 파괴 | 프로그램 내부 계약이 깨진 버그다. | 패닉 위치보다 앞선 상태 변경을 조사한다. |
unwind
스택을 거슬러 올라가며 데이터를 정리한다.
abort
정리 없이 즉시 종료해 바이너리 크기와 동작을 바꾼다.
Result
복구 가능한 실패를 호출자가 다룰 수 있는 값으로 만든다.