AndroidKotlin-Flow:Retrofit调用失败,未抛出异常
创始人
2024-10-08 18:02:13
0

在使用Kotlin-Flow结合Retrofit进行网络请求时,有时会出现调用失败但未抛出异常的情况。这时需要添加一个拦截器,以捕获异常并将其返回给调用者。

以下是示例代码:

class ErrorHandlingInterceptor : Interceptor {
    override fun intercept(chain: Interceptor.Chain): Response {
        val response = chain.proceed(chain.request())
        if (response.isSuccessful) {
            return response
        } else {
            throw YourCustomException() // 抛出自定义异常
        }
    }
}

class YourCustomException : Exception()

val client = OkHttpClient.Builder()
    .addInterceptor(ErrorHandlingInterceptor()) // 添加拦截器
    .build()

val retrofit = Retrofit.Builder()
    .baseUrl(baseUrl)
    .client(client)
    .addConverterFactory(GsonConverterFactory.create())
    .build()

在拦截器中,首先获取Retrofit的返回结果,如果成功返回结果,否则抛出自定义异常。在调用处使用try-catch语句捕获异常即可。

try {
    val result = yourFlow.collect() // 执行网络请求
    // 处理结果
} catch (e: YourCustomException) {
    // 处理异常
}

相关内容

热门资讯

重大通报!pokemmo脚本,... 重大通报!pokemmo脚本,hhpoker辅助器,解密教程(有挂透视);最新版2024是一款经典耐...
透视科技!wepoker透视脚... 透视科技!wepoker透视脚本是什么(透视)竟然有挂(详细辅助2025教程)1、完成wepoker...
终于清楚!wepoker免费脚... 终于清楚!wepoker免费脚本弱密码,wepokerplus作弊,靠谱教程(有挂攻略)1、不需要A...
透视ai代打!wepoker有... 透视ai代打!wepoker有没有挂(透视)总是是真的有挂(详细辅助力荐教程);1、玩家可以在软件透...
透视免费!来玩app 德州 辅... 透视免费!来玩app 德州 辅助(透视)原来是真的有挂(详细辅助介绍教程)1、游戏颠覆性的策略玩法,...
揭秘关于!哈糖大菠萝怎么挂,w... 揭秘关于!哈糖大菠萝怎么挂,werplan有挂吗,揭秘攻略(有挂攻略);玩家必备必赢加哟《13670...
透视透视!pokernow辅助... 透视透视!pokernow辅助控制(透视)其实真的有挂(详细辅助实用技巧)1、完成透视辅助安装,帮助...
实测分享!wpk透视辅助下载,... 实测分享!wpk透视辅助下载,wepoker辅助器如何使用,AI教程(有挂软件)1、很好的工具软件,...
透视插件!hhpoker有辅助... 透视插件!hhpoker有辅助吗(透视)确实是有挂(详细辅助规律教程)1、ai机器人多个强度级别选择...
教学盘点!wepoker破解游... 自定义wepoker破解游戏盒子系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...