0
안녕하세요, 안드로이드 앱에 LiveData
과 RxJava2
을 사용하고 있습니다. 다음을 사용하여 http 전화를 걸고 있습니다.rxjava2 in android에서 에러 처리하는 방법
@Inject
lateinit var retrofit: Retrofit
override fun doServerLoginApiCall(email: String, password: String): LiveData<LoginResponse> {
val liveData = MutableLiveData<LoginResponse>()
retrofit.create(RestApi::class.java).login(email, password)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { loginResponse ->
liveData.setValue(loginResponse);
}
return liveData
}
위 코드에서 아래와 같은 오류를 어떻게 처리 할 수 있습니까? 당신이 당신의 가입 블록의 OnError 구현하려면
when (e) {
is HttpException -> {
val responseBody = (e as HttpException).response().errorBody()
responseBody?.let {
view?.onUnknownError(getErrorMessage(it))
}
}
is SocketTimeoutException -> {
view?.onTimeout()
}
is IOException -> {
view?.onNetworkError()
}
else -> {
e.message?.let {
view?.onUnknownError(it)
}
}
}