时间:2021-05-19
一. 前言
之前的文章 RxJava处理业务异常的几种方式 曾经介绍过 Retrofit 的异常可以有多种处理方式。
其中,可以使用 RxJava 的错误处理操作符,它们是专门用来处理异常的。
随便例举两个操作符:
onErrorReturn 操作符,表示当发生错误的时候,发射一个默认值然后结束数据流。所以 Subscriber 看不到异常信息,看到的是正常的数据流结束状态。
onErrorResumeNext 操作符,表示当错误发生的时候,使用另外一个数据流继续发射数据。在返回的被观察者中是看不到错误信息的。
二. 使用 Kotlin 的特性
这次我结合 Kotlin 扩展函数的特性来尝试处理异常。
网络请求返回的 Response 大多是采用如下这种形式:
对于客户端开发而言,我们会封装一个基类的HttpResponse。
其中,UnProguard是一个空的接口,主要是方便 App 在混淆的时候保留部分类。
通常情况下,我们会在 Observer 的 onError 中按照如下的方式处理异常:
如果我们利用 RxJava 的错误处理操作符,可以编写如下的扩展函数:
扩展函数 errorReturn 的使用:
这样无须在 onError 中处理异常,而且 errorReturn 还是一个高阶函数。它的 action 参数传递的是一个函数,专门用于处理异常。每一个网络请求的异常处理并不会都一样,可以用该函数来传递不同的异常处理。
总结
合理利用 Kotlin 的扩展函数,可以编写优雅的代码。而使用高阶函数,则可以达到的进一步的抽象。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java异常处理运行时异常(RuntimeException)详解及实例RuntimeExceptionRunntimeException的子类:ClassCa
本文实例讲述了PHP使用观察者模式处理异常信息的方法。分享给大家供大家参考,具体如下:异常信息的捕获对编程测试有着重要的意义,这里结合观察者模式,探索如何处理异
如何处理闲置不用的网络店铺?是现阶段许多遭遇撤出网店运营销售市场的店家所必须处理的难题,下边就给大伙儿介绍一下如何处理闲置不用的网络店铺?在移动互联髙速推动的今
Kotlin语言中调用JavaScript方法实例详解Kotlin已被设计为能够与Java平台轻松互操作。它将Java类视为Kotlin类,并且Java也将Ko
全文主题风格:淘宝钻展点击量是多少算高的?点击量异常如何处理呢目前大家都了解淘宝钻展的范畴遮盖尤其普遍,有80%的网络购物群体,每日有超出10亿次的呈现机遇。这