📅  最后修改于: 2023-12-03 15:32:31.535000             🧑  作者: Mango
在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
块语法简单明了,易于理解和实现。