本文介绍了RxJava 2中的映射异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将一个发生的异常映射到RxJava2中的另一个?
例如:
How can I map one occurred exception to another one in RxJava2? For example:
doOnError(throwable -> {
if (throwable instanceof FooException) {
throw new BarException();
}
})
在在这种情况下,我最终收到由 FooException
和 BarException
CompositeException >,但我只想接收 BarException
。帮帮我!
In this case I finally receive CompositeException
that consists of FooException
and BarException
, but I'd like to receive only BarException
. Help!
推荐答案
您可以使用onErrorResumeNext并从中返回Observable.error():
You can use onErrorResumeNext and return Observable.error() from it:
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);
}
这篇关于RxJava 2中的映射异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!