android - 如何在没有 subscribe() 的情况下处理 BlockingObservable 中的错误?

标签 android rx-java rx-android

出于各种原因,我必须像这样阻止 observable

Foo foo = fooBarNetworkRequestObservable()
   .toBlocking()
   .single();

return foo;

但是现在我该如何处理错误呢?没有 subscribe(new Subscriber .. onError()?) 是可能的吗?我尝试将代码包装在 try-catch 中,但编译器提示 IOException 从未在相应的 try-catch block 中抛出。任何解决方案?谢谢

最佳答案

你在阻塞世界中,所以你需要尝试捕捉。由于 API 无法抛出已检查的异常,我们为您将它们包装到 RuntimeException 中:

try {
    source.toBlocking.single();
} catch (RuntimeException ex) {
    if (ex.getCause() instanceof IOException) {
        // handle IOException
    } else {
        throw ex; // something other happened
    }
}

关于android - 如何在没有 subscribe() 的情况下处理 BlockingObservable 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135542/

相关文章:

java - Dagger 2 : no injector factory bound for fragment

安卓 2.2 : Turning of screen under certain times of the day by code

java - RxJava - 使用 Single.Error/Observable.error 与抛出异常

android - 使用 RxAndroid 调度

android - 是否可以重新订阅 Retrofit 2 observable?

android - 如何在安卓应用中启用谷歌地图导航

java - RxJava2 - Mutlicasting Singles、Maybes 和 Completables?

java - 是否有更干净的方法使用 RxJava 来适应标准观察者/监听器服务?

android - 如何使用 Retrofit 和 RxJa 处理两个 JSON 响应?

android - 如何为谷歌地图标记设置 id 以识别选择了哪个?