我有一个始终报告onNext的流。 我想检查对象并决定是在onNext中发送它还是在onError中发送它。
我应该创建自己的Throwable类来保存这个对象并将这个Throwable抛出到map操作符中吗?还是有更好的方法吗?
答案 0 :(得分:0)
根据您的建议,您可以throw
例外并让map()
抓住异常并重定向到onError()
。当错误可能发生在映射代码的深处时,这很有用。
另一种方式,不需要throw
就是使用flatMap()
:
...
.flatMap( input -> {
if ( input.isValid() ) {
return Observable.just( mapValue( input ) );
}
return Observable.error( new MyThrowable( input ) );
} )
...
在我看来,不连续性较少,因为您知道顶层的一个选项是遇到错误。