kotlin的异常捕获与其他语言区别不大。请看代码
fun main(args: Array<String>) {
try {
val arg1 = args[0].toInt()
val arg2 = args[1].toInt()
println("$arg1 + $arg2 = ${sum(arg1, arg2)}")
} catch (e: NumberFormatException) {
println("您确定输入的都是整数吗?")
} catch (e: IndexOutOfBoundsException) {
println("您确定输入的是 2 个整数吗?")
} catch (e: Exception) {
println("发生了意料之外的输入错误。")
} finally {
println("谢谢您使用我们的加法计算器。")
}
}
当系统运行时,需要先给入 2 个整数以便进行 sum 加法运算。
如果给的参数有不是整数的,就会触发 NumberFormatException , 从而打印出 “您确定输入的都是整数吗?”的语句。
如果给出的参数小于 2 个,就会触发 IndexOutOfBoundsException , 那么程序会打印出“您确定输入的是 2 个整数吗?”
如果是其他异常错误,不再细分,直接触发 Exception ,打印出“发生了意料之外的输入错误。”
而 finally 的作用是,无论是否发生错误,都会执行所对应的语句,这里是打印出“谢谢您使用我们的加法计算器。”
6 + 3 = 9
谢谢您使用我们的加法计算器。
您确定输入的都是整数吗?
谢谢您使用我们的加法计算器。
这是异常捕获语句。我们也有异常捕获表达式的写法。
再看一个例子
val result =try {
args[0].toInt()/args[1].toInt()
} catch (e: Exception) {
0
}
println("计算结果:$result")
这里,如果参数计算正常,会把除法结果赋值给 result ,如果发生异常,会把 0 赋值给 result 。最后打印一句“计算结果:__”。这里的 try...catch 就是异常表达式。
计算结果:0
网友评论