如何使流报告错误和下一步

时间:2018-04-24 13:31:04

标签: java android rx-java2

我有一个始终报告onNext的流。 我想检查对象并决定是在onNext中发送它还是在onError中发送它。

我应该创建自己的Throwable类来保存这个对象并将这个Throwable抛出到map操作符中吗?还是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

根据您的建议,您可以throw例外并让map()抓住异常并重定向到onError()。当错误可能发生在映射代码的深处时,这很有用。

另一种方式,不需要throw就是使用flatMap()

...
.flatMap( input -> {
                     if ( input.isValid() ) {
                       return Observable.just( mapValue( input ) );
                     }
                     return Observable.error( new MyThrowable( input ) );
                   } )
...

在我看来,不连续性较少,因为您知道顶层的一个选项是遇到错误。