Я создал два наблюдаемых объекта.
Один из них выдает исключение.
obs1 = Observable.from(new Integer[]{1, 2, 3, 4, 5, 6});
obs2 = Observable.create(new Observable.OnSubscribe<Integer>() {
@Override public void call(Subscriber<? super Integer> subscriber) {
boolean b = getObj().equals(""); // this throws an exception
System.out.println("1");
}
});
Теперь я вызываю их, используя
Observable.merge(obs2, obs1)
.subscribe(new Observer<Integer>() {
@Override public void onCompleted() {
System.out.println("onCompleted");
}
@Override public void onError(Throwable throwable) {
System.out.println("onError");
}
@Override public void onNext(Integer integer) {
System.out.println("onNext - " + integer);
}
});
Теперь я не хочу, чтобы мой процесс полностью останавливался при возникновении исключения -
я хочу обработать его, и я хочу, чтобы obs1 продолжал свою работу.
Я пытался написать его с помощью onErrorResumeNext(), onExceptionResumeNext(), doOnError(), но ничего не помогло - obs1 не запустился.
Как я могу обработать исключение, не останавливая обработку других наблюдаемых?
obs2.onErrorResumeNext(e -> Observable.empty())
? - person zsxwing   schedule 10.11.2014onError
. - person zsxwing   schedule 11.11.2014