Ответ 1
То, что вы ищете, это onErrorResumeNext
, которое позволит вам поймать любой Throwable
, испущенный из источника, и позволит вам либо возобновить работу с новым Observable, либо другим Observable
, который выдаст другой Throwable
.
...
.flatMap(...)
.flatMap(...)
.onErrorResumeNext(new Func1<Throwable, Observable<?>>() {
@Override
public Observable<?> call(Throwable throwable) {
// Here simply return an Observable which will emit the Throwable of your liking
return Observable.error(new Throwable(...));
}
})
.flatMap(...);
Имейте в виду, что flatMap
- это оператор для обработки потока данных, но он не позволит вам обрабатывать onError
в вашем примере кода. Вы можете обработать ошибку в своем обратном вызове Observer
onError
, где вы подписаны на поток.