【问题标题】:RxJava error handling The exception was not handled due to missingRxJava错误处理 由于缺少异常没有处理
【发布时间】:2020-03-02 15:13:26
【问题描述】:

我的问题是 rxJava 错误 由于 subscribe() 方法调用中缺少 onError 处理程序,因此未处理异常。有什么办法解决这个问题?

compositeDisposable.add(backendApi.createEphemeralKey(params)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe { response ->
            try {
                val rawKey = response.string()
                keyUpdateListener.onKeyUpdate(rawKey)`
            } catch (e: IOException) {
                keyUpdateListener
                    .onKeyUpdateFailure(0, e.message ?: "")
            }
        })

【问题讨论】:

    标签: android rx-java


    【解决方案1】:

    正如错误提示,

    compositeDisposable.add(backendApi.createEphemeralKey(params)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe ({ response ->
                    val rawKey = response.string()
                    keyUpdateListener.onKeyUpdate(rawKey)
            }, // onError goes here as 2nd lambda parameter
            {e ->
                 keyUpdateListener.onKeyUpdateFailure(0, e.message ?: "")
            })
    )
    

    这是基本的错误处理,请参考文档 Error Handling Operators

    警告:您的问题太简单,已经回答,您将收到反对票和重复标记。

    编辑:我认为签名差异是因为您使用的 Rx 版本。无论如何,以上内容应该与 RxJava2 一起使用,您的模块至少支持 Java 8 以支持 lambdas。

    【讨论】:

    • onError 方法不存在
    • 检查更新的答案,如果你可以提供 rxjava 版本。
    猜你喜欢
    • 2021-06-29
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2014-12-20
    • 2012-09-15
    • 2011-04-03
    • 2014-08-06
    • 2017-01-20
    相关资源
    最近更新 更多