12. 异常---try...catch

Kotlin
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块中的内容不会影响表达式的结果。

推荐阅读更多精彩内容