try...catch
Kotlin中所有异常类都是Throwable类的子孙类。
使用try...catch表达式来捕获异常:
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:ArrayIndexOutOfBoundsException){
println("你确定输入的是两个整数吗?");
}finally {
println("感谢你使用本软件加法器");
}
}
fun Sum(arg1: Int, arg2: Int): Int {
return arg1 + arg2;
}
可以有零到多个catch块。finally块可以省略。但是catch与finally块至少应该存在一个。
try是一个表达式,即它可以有一个返回值
fun main(args: Array<String>) {
// try...catch作为表达式
val result = try {
args[0].toInt() / args[1].toInt();
} catch (e: Exception) {
e.printStackTrace();
0;
}
println("result: $result");
}
try-表达式的返回值是try块中的最后一个表达式或者(所有)catch块中的最后一个表达式。
finally块中的内容不会影响表达式的结果。
网友评论