Handling different error types(处理不同的错误类型)--Moya文档

Handling different error types(处理不同的错误类型)

在出错的情况下,您可能需要处理:

provider.request(target) { result in
    switch result {
    case let .success(response):
        // Do sg on success
    case let .failure(error):
        // Handle error here
    }
}

或者 使用RxSwift的方式

.doOnError { error in
    // Handle error here
}

你可以使用switch处理不同的MoyaError的情况。在处理.Underlying的错误情况下,你还可以得到原始的NSError和它的属性,比如,code(表示,NSURLError或者NSURLErrorTimedOut或者NSURLErrorNotConnectedToInternet)

switch error {
case .data(let response):
    print(response)
case .imageMapping(let response):
    print(response)
case .jsonMapping(let response):
    print(response)
case .statusCode(let response):
    print(response)
case .stringMapping(let response):
    print(response)
case .underlying(let nsError):
    // now can access NSError error.code or whatever
    // e.g. NSURLErrorTimedOut or NSURLErrorNotConnectedToInternet
    print(nsError.code)
    print(nsError.domain)
}

总结 这小节的核心:

  1. swith中处理各种类型的错误

你可能感兴趣的:(Handling different error types(处理不同的错误类型)--Moya文档)