You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin协程withContext异常无法被try-catch捕获问题排查

问题:网络请求抛出的JsonDataException未被正确捕获?

网络请求代码

viewModelScope.launch {
    try {
        val data = withContext(dispatcher.io()) { homeRepository.getData() }
    } catch (e: Throwable) {
        val error = globalErrorHandler.getMessageForUser(throwable)
        Timber.d("seriesResponse failed: $error")
    }
}

响应模型定义

data class MainResponse<T>(
    val list: List<T> = emptyList(),
    val total: Int?
)

抛出的错误信息

Fatal Exception: com.squareup.moshi.JsonDataException
Non-null value 'credits' was null at $.data[1].credits

我原本认为这个JsonDataException会被try-catch块捕获,但实际直接触发了致命异常。请问代码哪里出问题了?


更新说明:经排查是我自身问题,val error = globalErrorHandler.getMessageForUser(throwable)这行代码未正确处理(比如内部又抛出了未捕获的异常),导致错误没有被正常拦截。

内容的提问来源于stack exchange,提问作者Frank Mung No

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:11:12