美文网首页
Rxjava1 与 Android 的故事(5)—— Error

Rxjava1 与 Android 的故事(5)—— Error

作者: ZLOVE1990 | 来源:发表于2017-10-12 20:52 被阅读0次

    系列故事的第5篇介绍RxJava的异常处理API

    onErrorReturn

    errorReturn

    onErrorReturn让Observable遇到错误时发射一个特殊的项并且正常终止。

    onErrorResumeNext

    onErrorResumeNext

    onErrorResumeNext让Observable在遇到错误时开始发射第二个Observable的数据序列。

    onExceptionResumeNext

    onExceptionResumeNext和onErrorResumeNext很相似,不同的是,如果onError收到的Throwable不是一个Exception,它会将错误传递给观察者的onError方法,不会使用备用的Observable。

    retry

    retry

    retry操作符不会将原始Observable的onError通知传递给观察者,它会订阅这个Observable,再给它一次机会无错误地完成它的数据序列。Retry总是传递onNext通知给观察者,由于重新订阅,可能会造成数据项重复。无论收到多少次onError通知,无参数版本的retry都会继续订阅并发射原始Observable。接受单个count参数的retry会最多重新订阅指定的次数,如果次数超了,它不会尝试再次订阅,它会把最新的一个onError通知传递给它的观察者。

    retryWhen

    retryWhen

    retryWhen和retry类似,区别是,retryWhen将onError中的Throwable传递给一个函数,这个函数产生另一个Observable,retryWhen观察它的结果再决定是不是要重新订阅原始的Observable。如果这个Observable发射了一项数据,它就重新订阅,如果这个Observable发射的是onError通知,它就将这个通知传递给观察者然后终止。

    总结:

    以上的方法已经基本例举了RxJava中有关Observable对象过滤的API,具体用法还需要大家多加练习呀!

    注:本人会在此系列文章的末尾加上GitHub源码地址,敬请期待。。。

    相关文章

      网友评论

          本文标题:Rxjava1 与 Android 的故事(5)—— Error

          本文链接:https://www.haomeiwen.com/subject/zrooyxtx.html