Error Handling
📕 Error가 발생하는 경우
- 인터넷이 연결되어 있지 않은 경우
- 타입에 맞지 않은 입력을 하는 경우
ex) int타입에 특수문자를 입력
- API나 HTTP Error가 나는 경우
📙 Error를 대비하기 위한 문법
- Catch 구문 (Observable → Catch → Subscriptions)
: Error Throw
- Retry 구문 (Observable ↔ Retry → Subscriptions)
: 재요청
📗 Catch Error
- API 통신 시에 HTTP StatusCode가 200번대가 아닌 경우, 대부분 Error이다.
✏️ 예시) RxCocoa Error Catch문
.catchError { error in
print(error.localizedDescription)
return Observable.just(Data)
}.asDriver(onErrorJustReturn: Data)
✏️ 예시) RxCocoa Error Throw문
throw RxCocoaURLError.httpRequestFailed(response: <HTTPURLResponse>, data: <Data?>)
📘 Retry Error
- 인터넷이 끊긴 경우, 계속 다시 신청할 수 있다.
- 재신청할 수 있는 횟수를 지정하여 사용한다.
✏️ 예시) RxCocoa Error Retry문
.retry(3)
.catchError {
...
}
🏷 참고 사이트