一、描述
让Observable在遇到错误时继续发射后面的数据项。
和onErrorResumeNext类似,onExceptionResumeNext方法返回一个镜像原有Observable行为的新Observable,也使用一个备用的Observable,不同的是,如果onError收到的Throwable不是一个Exception,它会将错误传递给观察者的onError方法,不会使用备用的Observable。
二、示意图
三、示例代码
1 | Observable.create(new Observable.OnSubscribe<Integer>() { |
四、运行结果
1 | onNext: 0 |
将第10行代码改为new Throwable后,会看到输出结果为:
1 | onNext: 0 |
可见上文提到的结论是正确的:
如果onError收到的Throwable不是一个Exception,它会将错误传递给观察者的onError方法,不会使用备用的Observable。
关于Error和Exception的区别,大家可以查看Android官方文档,或查看Android RxJava使用介绍(四) RxJava的操作符。
项目代码已上传到Github:https://github.com/SherlockShi/RxJavaBestPractise
五、参考资料
PS:欢迎关注 SherlockShi 个人博客