Rx java RxAndroid ForEach运算符上的处理错误
这是基于RxJava和rxandroid1.x的 我是接收东西的新手,我想使用Rx java RxAndroid ForEach运算符上的处理错误,rx-java,rx-android,Rx Java,Rx Android,这是基于RxJava和rxandroid1.x的 我是接收东西的新手,我想使用forEach操作符,但我无法处理Action1中发生的错误 这是我的密码: Observable.from(listeningDocumentIds) .subscribeOn(Schedulers.io()) .doOnError(Throwable::printStackTrace) .forEach(id -> { detachDoc
forEach
操作符,但我无法处理Action1
中发生的错误
这是我的密码:
Observable.from(listeningDocumentIds)
.subscribeOn(Schedulers.io())
.doOnError(Throwable::printStackTrace)
.forEach(id -> {
detachDocumentChangeListener(listener, document);
});
detachDocumentChangeListener
函数可能会引发一些异常,但是doError
似乎没有发挥作用
可以抛出的异常之一是NullPointerException
,它显然是RuntimeException
,因此我不明白为什么我的DoError
没有捕捉到它
当我在这里的时候,
forEach
是否会正确地运行在io
线程上,并使用此代码?doon错误
可以窥视来自其上方而非下方的错误。它不是一个错误处理程序,因为错误将继续向下游到达最终使用者。例如,通过onErrorResumeNext
完成错误处理。否则,您应该使用两个参数subscribe
,而不是forEach
:
Observable.from(listeningDocumentIds)
.subscribeOn(Schedulers.io())
.subscribe(id -> {
detachDocumentChangeListener(listener, document);
}, Throwable::printStackTrace);
doError
可以窥视来自上面而不是下面的错误。它不是一个错误处理程序,因为错误将继续向下游到达最终使用者。例如,通过onErrorResumeNext
完成错误处理。否则,您应该使用两个参数subscribe
,而不是forEach
:
Observable.from(listeningDocumentIds)
.subscribeOn(Schedulers.io())
.subscribe(id -> {
detachDocumentChangeListener(listener, document);
}, Throwable::printStackTrace);