📅  最后修改于: 2021-01-05 07:34:13             🧑  作者: Mango
Kotlin最终阻塞了这样一个块,无论是否处理异常,该块始终执行。因此,它用于执行重要的代码语句。
让我们看一个不发生异常的异常处理示例。
fun main (args: Array){
try {
val data = 10 / 5
println(data)
} catch (e: NullPointerException) {
println(e)
} finally {
println("finally block always executes")
}
println("below codes...")
}
输出:
2
finally block always executes
below codes...
让我们看一个异常处理的例子,其中发生异常但未处理。
fun main (args: Array){
try {
val data = 5 / 0
println(data)
} catch (e: NullPointerException) {
println(e)
} finally {
println("finally block always executes")
}
println("below codes...")
}
输出:
finally block always executes
Exception in thread "main" java.lang.ArithmeticException: / by zero
让我们看一个异常处理的例子,其中发生并处理了异常。
fun main (args: Array){
try {
val data = 5 / 0
println(data)
} catch (e: ArithmeticException) {
println(e)
} finally {
println("finally block always executes")
}
println("below codes...")
}
输出:
java.lang.ArithmeticException: / by zero
finally block always executes
below codes...
注意:如果程序退出(通过调用exitProcess(Int)或导致进程中止的任何错误),则不会执行finally块。