less than 1 minute read


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))"
		}
	}
}

Updated: