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中处理各种类型的错误
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章摘自Moya官方文档 Targets Moya的使用始于定义一个target——典型的是定义一个符合Targe...
    Jt_Self阅读 16,312评论 0 27
  • 错误处理(Error handling)是响应错误以及从错误中恢复的过程。Swift 提供了在运行时对可恢复错误的...
    松哥888阅读 1,119评论 0 0
  • RxSwift_v1.0笔记——14 Error Handling in Practice 错误在所难免,我们需要...
    大灰很阅读 1,040评论 0 2
  • 此时正值冬日,风刺骨的凉,几日不见太阳,农村的雾霾着实也有些严重。几人围着火炉取暖 聊天 喝茶 ,人多的地方还是...
    小乖儿不乖阅读 242评论 0 2
  • 你还好吗,几年了,没见你。什么不想你,骗我自己罢了。
    虎虎和阅读 196评论 0 0