Apierror
layout: single title: “API Error” —-
Nework API Error
- network 처리에서 customError를 표현할 때 다음과 같이 표현할 수 있다.
Error
protocol을 채택한 customError를 enum type으로 만든다.- 각각 상황에 맞게 case에 element를 만든다.
- associate type으로 code나 error를 표현할 수 있다.
- ‘information’을 통해서 description을 나타낼 수 있다.
- network에서 completionHandler나 ResultType에서 error를 던질떼, 아래 에러를 던질수 있다.
enum NetworkApiError: Error {
case noContent
case decodingError
case badStatus(code: Int)
case unknown(_ error: Error?)
case unauthorized
case notAllowedURL
var information: String {
switch self {
case .noContent: return "no contents"
case .decodingError: return "cannot decode"
case let .badStatus(code): return "error statusCode: \(code)"
case .unauthorized: return "unauthorized user"
case .notAllowedURL: return "not allowed url"
case .unknown(let error): return "unknown error: (\((error))"
}
}
}