Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- list
- array
- Animation
- escaping
- struct
- Git
- SWIFT
- protocol
- IOS
- Refresh
- apns
- segue
- singleton
- mvvm
- viewlifecycle
- class
- 고차함수
- Switch
- 글또
- uikit
- Observer
- SWIFTUI
- http
- PushNotification
- 화면전환
- calendar
- self
- error
- ScrollView
- NotificationCenter
Archives
- Today
- Total
seong_hye, the developer
Swift) Error Code 본문
📘 Error Code
시스템, 네트워크, API, 앱 내부 등에서 발생한 오류의 종류를 숫자로 식별하기 위한 코드
상황에 따라 의미가 다르지만, 일반적으로 범주를 나눔
🔹 HTTP 에러 코드 (100~599)
가장 알려진 에러코드
네트워크 통신 (REST API)에서 사용됨
범위 | 의미 | 예시 |
1xx | 정보 | 100: Continue |
2xx | 성공 | 200: OK, 201: Created |
3xx | 리다이렉트 | 301: Moved Permanently, 304: Not Modified |
4xx | 클라이언트 오류 | 400: Bad Request, 401: Unauthorized, 404: Not Found |
5xx | 서버 오류 | 500: Internal Server Error, 503: Service Unavailable |
📌 서버와 클라이언트 간의 HTTP 응답 상태 코드를 나타냄
🔹 iOS 시스템 에러 코드 (Foundation / Cocoa)
NSError로 전달되는 에러에는 도메인(Domain)과 코드(Code)가 함께 나옴
➡️ NSURLErrorDomain
에러 코드 | 의미 |
-1001 | 요청 시간 초과 (Timed out) |
-1009 | 인터넷 연결 안 됨 (Not connected to Internet) |
-1004 | 서버 연결 실패 (Could not connect to server) |
-1200 | SSL 인증 오류 |
-999 | 요청 취소됨 (Canceled) |
🔹 커스텀 앱 에러 코드
앱 내부에서 enum을 만들어서 직접 에러 코드와 메시지를 정의 가능
주로 API 실패 응답, 로컬 오류 분기 처리 등에 사용됨
enum MyAppError: Int, Error {
case unknown = 1000
case invalidInput = 1001
case permissionDenied = 1002
}
🔹 POSIX / System 에러 코드 (UNIX 기반)
iOS 내부적으로도 사용하는 POSIX 에러 코드 존재
파일 처리나 시스템 호출 중에 발생함
에러 코드 | 의미 |
1 | EPERM: 권한 없음 |
2 | ENOENT: 파일 없음 |
13 | EACCES: 접근 거부 |
22 | EINVAL: 잘못된 인자 |
🔹에러 코드 디버깅 팁
🔍 NSError
- Domain: 에러의 범위 (ex. NSURLErrorDomain)
- code: 숫자 에러 코드
- userInfo: 에러 상세 정보
if let error = error as? URLError {
print("에러 코드 : \(error.code.rawValue)")
}
🔹요약
종류 | 코드 범위 | 설명 |
HTTP | 100 ~ 599 | 서버와의 통신 결과 |
iOS 시스템 (NSError) | -1xx ~ -1xxx | 네트워크 오류 등 |
커스텀 | 개발자 정의 | 앱 내부 로직 |
POSIX | 1 ~ 255 | 시스템 파일 / 권한 오류 |
🔹참고
https://developer.apple.com/documentation/foundation/urlerror/code
URLError.Code | Apple Developer Documentation
There's never been a better time to develop for Apple platforms.
developer.apple.com
https://opensource.apple.com/source/xnu/xnu-4570.1.46/bsd/sys/errno.h.auto.html
'IOS' 카테고리의 다른 글
Swift) 동기 vs 비동기에 대해서 알아보기 (0) | 2022.11.10 |
---|---|
Swift) StateObject, ObservableObject, EnvironmentObject (0) | 2022.11.02 |
Swift) Library, Framework, Package에 대해 정리하기 (0) | 2022.10.24 |
Swift) APNs 설정 방법 알아보기 (0) | 2022.10.23 |
Swift) APNs에 대해 알아보기 & 설정 방법 알아보기 (0) | 2022.10.23 |
Comments