这些操作符用于从错误通知中恢复
Catch
Catch类似于java 中的try/catch,当错误发生的时候,可以拦截对onError的调用,让Observable不会因为错误的产生而终止。在Rxjava中,将这个操作符实现为3个操作符,分别是:
OnErrorReturn
当发生错误的时候,让Observable发射一个预先定义好的数据并正常地终止
OnErrorResume
当发生错误的时候,由另外一个Observable来代替当前的Observable并继续发射数据
OnExceptionResumeNext
类似于OnErrorResume,不同之处在于其会对onError抛出的数据类型做判断,如果是Exception,也会使用另外一个Observable代替原Observable继续发射数据,否则会将错误分发给Subscriber。
Retry
重试,如果Observable发射了一个错误通知,重新订阅它,期待它正常终止
Retry操作符在发生错误的时候会重新进行订阅,而且可以重复多次,所以发射的数据可能会产生重复。如果重复指定次数还有错误的话就会将错误返回给观察者
Rxjava还实现了RetryWhen操作符。当错误发生时,retryWhen会接收onError的throwable作为参数,并根据定义好的函数返回一个Observable,如果这个Observable发射一个数据,就会重新订阅。
时间: 2024-10-10 11:30:17