RxJava 2 中的映射异常
Mapping exception in RxJava 2
如何在 RxJava2 中将一个发生的异常映射到另一个异常?
例如:
doOnError(throwable -> {
if (throwable instanceof FooException) {
throw new BarException();
}
})
在这种情况下,我最终收到由 FooException
和 BarException
组成的 CompositeException
,但我只想收到 BarException
。帮助!
您可以使用 onErrorResumeNext 和 return Observable.error() 从它:
source.onErrorResumeNext(e -> Observable.error(new BarException()))
编辑
我通过了这个测试:
@Test
public void test() {
Observable.error(new IOException())
.onErrorResumeNext((Throwable e) -> Observable.error(new IllegalArgumentException()))
.test()
.assertFailure(IllegalArgumentException.class);
}
如何在 RxJava2 中将一个发生的异常映射到另一个异常? 例如:
doOnError(throwable -> {
if (throwable instanceof FooException) {
throw new BarException();
}
})
在这种情况下,我最终收到由 FooException
和 BarException
组成的 CompositeException
,但我只想收到 BarException
。帮助!
您可以使用 onErrorResumeNext 和 return Observable.error() 从它:
source.onErrorResumeNext(e -> Observable.error(new BarException()))
编辑
我通过了这个测试:
@Test
public void test() {
Observable.error(new IOException())
.onErrorResumeNext((Throwable e) -> Observable.error(new IllegalArgumentException()))
.test()
.assertFailure(IllegalArgumentException.class);
}