首页 > 解决方案 > 如果调用标有 @Throws(IOException::class) 的方法,则调用不适当的阻塞方法

问题描述

suspend fun load(): List<Device> {
    ...
    val response = withContext(Dispatchers.IO) {

        request.auth(authorizer).get(uri)
    }

    return response.data.devices
}

在上面的代码中,调用auth有效,因为它没有标记,@Throws
get看起来像这样:

@Throws(RequestFailedException::class, IOException::class, SigningException::class)
operator fun get(uri: URI): RestResponse

IntelliJ 将get-Function标记为Inappropriate blocking method call

我不确定这是否是假/阳性。如果不是 - 我应该如何处理这种情况?(我无法重写get-Function ...)

我发现这个问题报告https://youtrack.jetbrains.com/issue/KT-39684并尝试升级到协程 1.4.0 并降级到 1.8.3 - 没有任何帮助

标签: kotlinintellij-ideakotlin-coroutines

解决方案


推荐阅读