error-handling - RX2.0嵌套订阅错误处理

标签 error-handling kotlin rx-java2

我试图弄清楚RX流如何捕获异常。特别是,如果我在订阅中有一个订阅,而内部订阅从其可观察到的异常中接收消息,我是否需要在onError中处理内部订阅,还是可以在父订阅的onError中处理它?

observableThing1.subscribe({ _ ->
    observableThing2.subscribe({ _ ->
        // Something horrible happens here an an exception is throw by observableThing2
    })
}, { error -> 
    // Expecting I can handle all errors at the top most subscription
})

最佳答案

在您的情况下,您需要为每个onError处理subscription:

    observable1Thing().subscribe({ obs1Result -> 

        observable2Thing().subscribe({ obs2Result -> 

        }, { obs2Error -> 

        })


    }, { obs1error -> 

    })

如果将observables与像flatMap这样的运算符组合在一起,则只需要一个subcription,从而仅处理一个onError情况。
您将使用哪种运算符取决于您如何组合observables

例:
    obs1().flatMap { obs2() }.subscribe({

    }, { error ->

    })

关于error-handling - RX2.0嵌套订阅错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303087/

相关文章:

android - 协程 - 单元测试 viewModelScope.launch 方法

android - 在 Jetpack Compose 中启动动画矢量 Drawable

android - 概括处理所有网络服务调用的响应和错误的方法

kotlin - 测试 RxJava2 Flowable Query Room

javascript - IE 11 “An error has occurred in the script on this page”在行尾

bash - Shell脚本中的Echo错误消息

Ruby 表单自动提交 Mechanize::ResponseCodeError

kotlin - 什么时候出现这种Kotlin无效安全性?

android - 使用 RxJava2 和普通空响应错误进行改造 2

error-handling - Clarion中是否存在异常处理?