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

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

onErrorReturn

Rxjava1 与 Android 的故事(5)—— Error_第1张图片
errorReturn

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

onErrorResumeNext

Rxjava1 与 Android 的故事(5)—— Error_第2张图片
onErrorResumeNext

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

onExceptionResumeNext

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

retry

Rxjava1 与 Android 的故事(5)—— Error_第3张图片
retry

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

retryWhen

Rxjava1 与 Android 的故事(5)—— Error_第4张图片
retryWhen

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

总结:

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

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

你可能感兴趣的:(Rxjava1 与 Android 的故事(5)—— Error)