java exception 二次抛出_RxJava2可观察性抛出UndeliverableException

据我了解,RxJava2 values.take(1)创建了另一个Observable,它仅包含原始Observable中的一个元素。这 绝不能

丢,因为它是由效果过滤掉一个例外take(1),因为它是发生第二次。

如 以下 代码段所示

Observable values = Observable.create(o -> {

o.onNext(1);

o.onError(new Exception("Oops"));

});

values.take(1)

.subscribe(

System.out::println,

e -> System.out.println("Error: " + e.getMessage()),

() -> System.out.println("Completed")

);

输出量

1

Completed

io.reactivex.exceptions.UndeliverableException: java.lang.Exception: Oops

at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:366)

at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:83)

at ch02.lambda$main$0(ch02.java:28)

at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40)

at io.reactivex.Observable.subscribe(Observable.java:10841)

at io.reactivex.internal.operators.observable.ObservableTake.subscribeActual(ObservableTake.java:30)

at io.reactivex.Observable.subscribe(Observable.java:10841)

at io.reactivex.Observable.subscribe(Observable.java:10827)

at io.reactivex.Observable.subscribe(Observable.java:10787)

at ch02.main(ch02.java:32)

Caused by: java.lang.Exception: Oops

... 8 more

Exception in thread "main" io.reactivex.exceptions.UndeliverableException: java.lang.Exception: Oops

at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:366)

at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:83)

at ch02.lambda$main$0(ch02.java:28)

at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40)

at io.reactivex.Observable.subscribe(Observable.java:10841)

at io.reactivex.internal.operators.observable.ObservableTake.subscribeActual(ObservableTake.java:30)

at io.reactivex.Observable.subscribe(Observable.java:10841)

at io.reactivex.Observable.subscribe(Observable.java:10827)

at io.reactivex.Observable.subscribe(Observable.java:10787)

at ch02.main(ch02.java:32)

Caused by: java.lang.Exception: Oops

... 8 more

我的问题:

我理解它正确吗?

到底是什么导致了异常。

如何从消费者那里解决呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值