RxJava错误处理由于丢失而未处理异常

时间:2020-03-02 06:51:52

标签: android rx-java

我的问题是rxJava错误由于在subscription()方法调用中缺少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 ?: "")
            }
        })

1 个答案:

答案 0 :(得分:2)

如错误所示,

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,以支持lambda。