【问题标题】:How to handle errors on RxKotlin + Graphql如何处理 RxKotlin + Graphql 上的错误
【发布时间】:2020-02-17 05:10:11
【问题描述】:

我得到:

io.reactivex.exceptions.OnErrorNotImplementedException:异常 由于 subscribe() 中缺少 onError 处理程序而未处理 方法调用

我曾尝试添加

.doOnError { error ->
            Log.i("reverser code error",error.localizedMessage)
       }.onErrorReturn { err ->
          "Return method"
     }

但它不起作用。

【问题讨论】:

    标签: android kotlin graphql rx-kotlin


    【解决方案1】:

    doOnError 和其他副作用运算符本身不会影响您的流。相反,当某些事件发生时调用它们以允许您对这些事件做出反应,换句话说,它们只是预测为副作用操作(例如日志记录)发出的值

    您可以传递另一个 lambda 来订阅以处理特定流的错误,如下所示:

    .subscribe( { /*on subscribe method here*/}, { throwable -> /*handle error*/ } )
    

    看看这个教程 -> https://www.grokkingandroid.com/rxjavas-side-effect-methods/

    【讨论】:

    • 当我将 { throwable -> /*handle error*/ } 放在订阅上时,它在返回数据时不会返回。
    • 那是因为第二个 lambda 只会在发生错误时调用:)
    • 我正在使用此代码。 fun Observable.observe(block: (T) -> Unit) = this .observeOn(AndroidSchedulers.mainThread()) .subscribe({block},{throw IOException()}).apply { compositeDisposable. add(this) } 返回数据时不执行块代码
    猜你喜欢
    • 2017-06-23
    • 2018-01-28
    • 2017-06-05
    • 2019-11-17
    • 2017-08-08
    • 2020-04-08
    • 2021-10-28
    • 2019-12-07
    • 2022-06-30
    相关资源
    最近更新 更多