RxJava 2を学習しています。特定の型の例外をキャッチしてObservableを返したいと思います。基本的には、onErrorResumeNext()
は特定の例外クラスだけを捕捉したいが、彼女はそのようには動作しないように見える。RxJava 2の特定の型の例外をキャッチするだけです。
RxJava 2でこの動作を達成するための私のオプションは何ですか? onErrorResumeNext()
を使用して、私の特定の例外を処理し、他のものを取り返しますか?ような何か:このように使用後
public <T> Function<Throwable, Observable<T>> whenExceptionIsThenIgnore(Class<E> what) {
return t -> {
return what.isInstance(t) ? Observable.empty() : Observable.error(t);
};
}
:
.onErrorResumeNext(throwable -> throwable instanceof NotFoundException ? Observable.empty() : Observable.error(throwable));
をObservable.emptyを返しますはい、onErrorResumeNext' 'の' Function'変異体が移動するための方法です。 – akarnokd
ありがとう、@akarnokd。 私は 'onErrorResumeNext'は署名がある理由を理解しようとしています:' (<?...、スーパーのThrowable>機能) 'onErrorResumeNextをそれは私には思われる'こと? Throwableは '私たちが望むものではなく'を拡張していますか?スーパースローブ可能です。これは、 '.onErrorResumeNext((Object throwable) - > ...'ではなく) '.onErrorResumeNext((NotNullException throwable) - > ...')私には意味があるでしょう – HolySamosa
Javaの型システムはありませんラムダを介してそのようなタイプのキャプチャを表現するのに十分強力です。 – akarnokd