RxJava错误处理

RxJava错误处理,java,android,rx-java,Java,Android,Rx Java,我有一个方法可以创建和合并两个可观察的 private Observable<String> getData() { Observable<String> observable1 = Observable.just("Just string") .delay(2, TimeUnit.SECONDS); Observable<String> observable2 = Observable.create(new Obs

我有一个方法可以创建和合并两个可观察的

private Observable<String> getData() {

    Observable<String> observable1 = Observable.just("Just string")
            .delay(2, TimeUnit.SECONDS);

    Observable<String> observable2 = Observable.create(new Observable.OnSubscribe<String>() {
        @Override
        public void call(Subscriber<? super String> subscriber) {
            subscriber.onError(new Exception("Oops!"));
        }
    });

    Observable<String> merged = observable1.mergeWith(observable2);

    return merged;        
}
observate2
发出的可选数据和来自
observate2
的错误不能终止发出,但另一方面,我希望在单个观察者中处理所有错误和数据。我可以在
可观察1
的结果之后返回此错误吗?可能吗

预期结果:

onNext: Just string
onError: Oops!

听起来您需要类似于
Observable.mergeDelayError()
的东西

它应用了一个
合并
操作,但如果一些可观察对象调用了
onError
,它不会立即停止,而是捕获错误


一旦所有其他可观测数据顺利完成,错误就会传播,可能会合并成一个单一的
复合异常

,您可能应该详细说明为什么会出现这种情况。这可能是对可观测数据的一个很好的解释。mergeDelayError():
onNext: Just string
onError: Oops!