에러 처리 설계¶
Swift 에러 처리 모델의 설계 문서. 원본: swift/docs/ErrorHandling.md
에러의 네 가지 분류¶
| 분류 | 설명 | Swift 처리 |
|---|---|---|
| Simple domain error | 명확한 실패, 즉각 처리 | Optional 반환 |
| Recoverable error | 복잡하지만 예상 가능한 실패 | throws/try/catch |
| Universal error | 회복 가능하지만 예측 불가 | 범위 밖 |
| Logic failure | 프로그래머 실수 | fatalError, precondition |
Swift 에러 처리의 핵심¶
- 의도적으로 "exception handling"이라 부르지 않음: 다른 언어와 중요한 차이 존재
throws함수는 호출 시 반드시try표시 → 에러 전파 경로가 코드에 명시적catch는 exhaustive 또는do블록에서 처리- Cocoa
NSError패턴과 자연스럽게 통합
설계 원칙¶
- 명시적 전파: 에러가 어디서 발생할 수 있는지 코드에서 보여야 함
- 강제 처리: 에러를 무시하기 어렵게 (나쁜 습관 방지)
- 표현력: 일반적인 에러 처리 패턴을 간결하게
관련 페이지: overview, diagnostics