Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Kotlin Flow android中的OKHTTP拦截器捕获自定义异常_Android_Kotlin_Okhttp_Kotlin Flow - Fatal编程技术网

从Kotlin Flow android中的OKHTTP拦截器捕获自定义异常

从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 {

我试图捕获自定义异常在我的情况下是UserUnAuthorizedException,我试图从OkHttp拦截器抛出并在Kotlin流中捕获,在catch块中我能够捕获此异常

java.io.IOException:由于以下原因而取消 UserUnAuthorizedException

但应用程序正在崩溃,我无法理解为什么会发生这种情况,下面是我的代码

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
            }