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 | 
													Tags
													
											
												
												- Refresh
- singleton
- PushNotification
- 화면전환
- error
- Animation
- ScrollView
- segue
- array
- calendar
- viewlifecycle
- uikit
- apns
- IOS
- 글또
- Observer
- self
- list
- Git
- SWIFTUI
- NotificationCenter
- CoreImage
- http
- class
- struct
- SWIFT
- mvvm
- Switch
- escaping
- 고차함수
													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