gpt4 book ai didi

android - 使用 Kotlin 处理错误 RXJava Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:30 26 4
gpt4 key购买 nike

大家好,我是 RxJava 和 Kotlin 的新手,我对它有一些概念。

我有这样的“api”:

interface VehiclesService {
@GET("/vehicles/")
fun getVehicles(): Single<List<Vehicle>>
}

然后我创建改造客户端等。像这样:

var retrofit = RetrofitClient().getInstance()
vehiclesAPI = retrofit!!.create(VehiclesService ::class.java)

最后我打电话了:

private fun fetchData() {
compositeDisposable.add(vehiclesAPI .getVehicles()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { vehicles -> displayData(vehicles) }
)
}

这是我尝试启动时出现错误的地方:

The exception was not handled due to missing onError handler in the subscribe() method call

我知道错误很明显。所以我知道缺少什么,但我不知道如何处理这个错误。

我尝试添加:.doOnError { error -> Log.d("MainClass",error.message) } 但仍然显示相同的错误消息。

最佳答案

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

    private fun fetchData() {
compositeDisposable.add(vehiclesAPI .getVehicles()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe( { vehicles -> displayData(vehicles) }, { throwable -> //handle error } )
)
}

P.S: doOnError 和其他Side Effect运算符,无论如何都不会影响流,它们只是预期为副作用操作(例如日志记录)发出的值。

关于android - 使用 Kotlin 处理错误 RXJava Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52468708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com