/ / OnErrorThrowable introuvable dans rxjava 2 - rx-java, rx-java2

OnErrorThrowable introuvable dans rxjava 2 - rx-java, rx-java2

J'effectue la mise à niveau de rxjava 1 vers rxjava 2. Il existe OnErrorThrowable dans rxjava 1, mais pas dans rxjava 2. Que puis-je faire dans le code suivant pour remplacer OnErrorThrowable?

static Observable<String> sampleObservable() {
return Observable.defer(new Callable<ObservableSource<String>>() {
@Override
public ObservableSource<String> call() throws Exception {
try {
// Do some long running operation
Thread.sleep(TimeUnit.SECONDS.toMillis(5));
} catch (InterruptedException e) {
throw OnErrorThrowable.from(e);
}
Log.d(TAG, "The sleep is over, now produce something");
return Observable.just("one", "two", "three", "four", "five");
}
});
}

Réponses:

2 pour la réponse № 1

Dans la version 2.x, vous n’avez pas à encapsuler les exceptions car tous les types fonctionnels déclarent throws Exception:

static Observable<String> sampleObservable() {
return Observable.defer(new Callable<ObservableSource<String>>() {
@Override
public ObservableSource<String> call() throws Exception {
Thread.sleep(TimeUnit.SECONDS.toMillis(5));
Log.d(TAG, "The sleep is over, now produce something");
return Observable.just("one", "two", "three", "four", "five");
}
});

}


2 pour la réponse № 2

Vous pouvez retourner Observable.error(e); au lieu de jeter dans votre bloc de capture.