31차시. 예외 처리 설계
9. 자주 겪는 문제
출처: 원본 PDF 31차시_방어적코딩실습.pdf 19쪽 · 쪽 그림 19쪽
| 증상 | 원인과 해결 |
|---|---|
| 예외를 잡았는데 그래프가 이상하게 흐름 | 기본값이 라우터를 엉뚱한 곳으로 보냅니다. 기본값을 재검토하세요 |
| 모든 예외를 잡아 원인을 알 수 없음 | 반드시 로그에 예외 타입과 스택을 남기세요 |
| 타임아웃을 걸었는데 안 걸림 | LLM 개별 timeout과 전체 deadline을 모두 설정하세요 |
| RateLimitError가 자주 발생 | max_retries를 늘리고 지수 백오프를 적용하세요 |
| fallback 메시지가 다 똑같음 | _pick_reason의 조건 순서를 확인하세요 |
| verified 필드가 화면에 안 나옴 | ask 반환값에 포함하고 app.py에서 표시하세요 |
9-1) 예외를 무조건 잡으면 안 되는 경우
⚠️ 조용한 실패(silent failure)의 위험
모든 예외를 잡아 기본값으로 넘기면
시스템은 죽지 않지만 계속 틀린 답을 줍니다.
예: 인덱스 파일이 손상됐는데
매번 "자료를 찾지 못했습니다"만 반환
→ 아무도 문제를 모릅니다
반드시 함께 해야 할 것
· 예외를 로그에 남긴다
· node_error 비율을 모니터링한다
· 임계치를 넘으면 알림을 보낸다
잡되, 반드시 기록하세요.