当前位置: 首页 > 面试题库 >

RxJava 2中的映射异常

干茂才
2023-03-14
问题内容

如何在RxJava2中将一个发生的异常映射到另一个异常?例如:

doOnError(throwable -> {
    if (throwable instanceof FooException) {
        throw new BarException();
    }
})

在这种情况下,我最终收到CompositeException包含FooException和的内容BarException,但我只想收到BarException。救命!


问题答案:

您可以使用onErrorResumeNext并从中返回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);
}


 类似资料:
  • 首先,我对这个问题太长表示最诚挚的歉意,但老实说,我不知道如何缩短它,因为每个部分都是一个特例。诚然,我可能对此视而不见,因为我已经把头撞到墙上好几天了,我开始绝望了。 我向所有通读这本书的人表示最大的尊重和感谢。 我希望能够通过使用Jersey ExceptionMapers将Shiro的AuthenticationException及其子类映射到JAX-RS响应,Jersey例外映射器是使用G

  • 问题内容: 特定实体存在映射例外。不能弄清楚问题出在哪里。我从头到尾检查了所有映射3次。我仍然收到映射异常。 发送给员工的电子邮件仅映射一次。但它仍然报告错误重复映射 错误是: 电子邮件Pojo email.hbm.xml 相关脚本 发送给员工的电子邮件仅映射一次。但它仍然报告错误重复映射 问题答案: 您是否将Employee中的集合设置为逆?

  • 在下面的代码中,函数 不会执行,但是我可以在订阅者中打印错误。似乎不允许在映射器函数中使用链接。正确吗?如果是,为什么? 编辑:也尝试了平面图,但结果相同。

  • java.util.concurrent.executionException:java.lang.ClassCastException:com.hazelCast.mapreduce.aggregation.impl.DistrictValuesAggregation$SimpleEntry不能在com.hazelCast.mapreduce.impl.task.trackableJobFutu

  • 我正在努力使用Java Spring Hibernate,我正在尝试实现Oauth2,在通过@ManyToMany将表用户连接到角色时,我不断遇到错误。我已经阅读了所有关于我的问题的答案,无论我尝试什么,我仍然得到了一个组织。冬眠映射异常。 以下是我正在努力做的事情的全部细节。 数据库结构 角色。JAVA 使用者JAVA 依赖性 问题: org.springframework.beans.fact

  • 是否强制将我的外键实体从ClassA映射到ClassB中的主实体?