[英]Handling Error RXJava Android with Kotlin
嗨,我是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 } )
)
}
PS: doOnError
和其他副作用運算符,無論如何都不會影響流,它們只是預測為副作用操作發出的值,例如日志記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.