我有一个总是报告 onNext 的流。 我想检查该对象并决定是在 onNext 中发送还是在 onError 中发送。
我应该创建自己的 Throwable 类来保存这个对象并将这个 Throwable 扔到 map 操作符中吗?或者有什么更好的办法吗?
最佳答案
正如您所建议的,您可以抛出
异常并让map()
捕获异常并重定向到onError()
。当错误可能发生在映射代码深处时,这非常有用。
另一种不需要throw
的方法是使用flatMap()
:
...
.flatMap( input -> {
if ( input.isValid() ) {
return Observable.just( mapValue( input ) );
}
return Observable.error( new MyThrowable( input ) );
} )
...
在我看来,不连续性较少,因为您知道您在顶层的选择之一就是遇到错误。
关于java - 如何让流报告错误并下一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002982/