gpt4 book ai didi

rx-java2 - 即使提供了 doOnerror,RxJava2 Single 也不处理错误

转载 作者:行者123 更新时间:2023-12-03 22:13:34 28 4
gpt4 key购买 nike

我在使用 RxJava2(2.2.2 版)时遇到了问题。请参阅下面的代码:

client.get("/iic-router/health").rxSend()
.doOnError(err -> { err.printStackTrace(); async.complete(); })
.doOnSuccess(v -> async.complete())
.subscribe();

如您所见,rxSend() 方法返回 Single 的实例。 .当我运行此代码且 WebServer 未启动时,出现 Connectiong Refused 错误(如预期),但出现错误:
io.reactivex.exceptions.OnErrorNotImplementedException: The exception     
was not handled due to missing onError handler in the subscribe() method call.

如果我在 RxJava 上以更传统的方式更改代码,如下所示:
client.get("/iic-router/health").rxSend().subscribe(
v -> async.complete(),
err -> { err.printStackTrace(); async.complete(); }
);

一切正常。任何人都可以帮助我吗?或者这是一个真正的错误?

最佳答案

这不是一个错误和简单的 subscribe()documented :

Subscribes to a Single but ignore its emission or notification.

If the Single emits an error, it is wrapped into an OnErrorNotImplementedException and routed to the RxJavaPlugins.onError handler.


OnErrorNotImplementedException说你需要实现 onError Handler,就像你在第二个例子中所做的那样。
而不是 doOnError ,你也可以试试 onErrorResumeNextonErrorReturn不会调用 onError在订阅。

关于rx-java2 - 即使提供了 doOnerror,RxJava2 Single 也不处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52578048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com