Kotlin检测到服务器请求超时

时间:2017-11-23 08:21:20

标签: java android kotlin

嗨,当我向服务器请求数据时,我仍然是kotlin语言的新手,例如在java中:

try{
    request_server();
}
catch(IOException e){
    //Some toast for network timeout for example
}

如何在Kotlin中检查该请求是否有网络超时?

1 个答案:

答案 0 :(得分:2)

Kotlin没有检查异常,但这并不意味着你无法在Kotlin中找到IOException。除了catch中的变量声明之外没有区别:

try{
    request_server();
}
catch(e: IOException){
    //Some toast for network timeout for example
}

你很难看到这种语言中的结构。由于Kotlin对高阶函数有很好的支持,因此您可以将错误处理提取到这样的函数中,使业务逻辑更加明显,并且还可以重用。

fun <R> timeoutHandled(block: () -> R): R {
    try {
        return block()
    } catch (e: IOException) {
        //Some toast for network timeout for example
    }
}

像这样使用:

val result = timeoutHandled {
    requestServer()
}