从Kotlin Flow android中的OKHTTP拦截器捕获自定义异常
我试图捕获自定义异常在我的情况下是UserUnAuthorizedException,我试图从OkHttp拦截器抛出并在Kotlin流中捕获,在catch块中我能够捕获此异常 java.io.IOException:由于以下原因而取消 UserUnAuthorizedException 但应用程序正在崩溃,我无法理解为什么会发生这种情况,下面是我的代码从Kotlin Flow android中的OKHTTP拦截器捕获自定义异常,android,kotlin,okhttp,kotlin-flow,Android,Kotlin,Okhttp,Kotlin Flow,我试图捕获自定义异常在我的情况下是UserUnAuthorizedException,我试图从OkHttp拦截器抛出并在Kotlin流中捕获,在catch块中我能够捕获此异常 java.io.IOException:由于以下原因而取消 UserUnAuthorizedException 但应用程序正在崩溃,我无法理解为什么会发生这种情况,下面是我的代码 suspend fun execute(): Flow<Resource<AccessToken>> = flow {
suspend fun execute(): Flow<Resource<AccessToken>> = flow {
emit(Resource.Loading)
try {
val loginData = iApi.authorizations(AuthRequestModel().generate())
emit(Resource.Success(loginData))
} catch (e: UserUnAuthorizedException) {
emit(Resource.Error(e))
}
}
异常表明
UserUnAuthorizedException
已包装到java.lang.IOException
,请尝试捕获该异常。异常表明UserUnAuthorizedException
已包装到java.lang.IOException
,请尝试捕获该异常。
val client = OkHttpClient.Builder()
.addInterceptor { chain ->
val request = chain.request()
val response = chain.proceed(request)
when (response.code()) {
401 ->
throw UserUnAuthorizedException(app.resources.getString(R.string.invalid_credential))
}
response
}