📜  Kotlin嵌套尝试块(1)

📅  最后修改于: 2023-12-03 15:32:31.535000             🧑  作者: Mango

Kotlin嵌套尝试块

在Kotlin中,我们可以使用try/catch块来捕获和处理异常。有时,我们可能需要在一个try块中嵌套另一个try块来处理不同的异常。

语法

以下是嵌套try块的基本语法:

try {
    // some code
    try {
        // some more code
    } catch (ex: Exception) {
        // handle exception from inner try block
    }
} catch (ex: Exception) {
    // handle exception from outer try block
}

在上面的示例中,我们有一个外部try块和一个内部try块。如果内部try块中抛出了异常,外部catch块将处理该异常。如果在外部try块中出现异常,则直接由外部catch块进行处理。

示例

以下是一个嵌套try块的示例:

fun main() {
    val list = listOf("1", "2", "three", "4", "5")
    try {
        list.forEach {
            val intValue = it.toInt()
            try {
                val result = 100 / intValue
                println(result)
            } catch (ex: ArithmeticException) {
                println("Caught ArithmeticException: ${ex.message}")
            }
        }
    } catch (ex: NumberFormatException) {
        println("Caught NumberFormatException: ${ex.message}")
    }
}

在上面的示例中,我们有一个列表包含数字字符串。我们在外部try块中遍历这个列表,并在内部try块中将每个字符串转换为整数。如果转换成功,我们在内部try块中尝试将100除以该值,并打印结果。如果除以0,则会抛出ArithmeticException,并在内部catch块中处理该异常。如果字符串无法转换为整数,则会抛出NumberFormatException,并在外部catch块中处理该异常。

结论

在Kotlin中,我们可以使用嵌套try块来处理不同的异常。嵌套try块语法简单明了,易于理解和实现。