异常处理

抛出异常

使用 throw 抛出异常,异常值可以是任意类型:

fun divide(a: Int, b: Int): Int {
    if (b == 0) {
        throw "Division by zero";
    }
    return a / b;
}

捕获异常

使用 try / catch 捕获异常,可配合 finally:

try {
    var result = divide(10, 0);
    println(result);
} catch (e) {
    println("Error: " + e);
} finally {
    println("cleanup");
}

finally 块无论是否发生异常都会执行。

异常传播

若异常未被捕获,会沿调用栈向上传播,直到被捕获或程序终止。