Kotlinfinally块阻塞了这样一个块, 无论是否处理异常, 该块始终执行。因此它用于执行重要的代码语句。
Kotlin最终阻止了示例1
让我们看一个不发生异常的异常处理示例。
fun main (args: Array<
String>
){
try {
val data = http://www.srcmini.com/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...
Kotlinfinally块示例2
让我们看一个异常处理的例子, 其中发生异常但未处理。
fun main (args: Array<
String>
){
try {
val data = http://www.srcmini.com/5 / 0
println(data)
} catch (e: NullPointerException) {
println(e)
} finally {
println("finally block always executes")
}
println("below codes...")
}
【Kotlin finally块】输出:
finally block always executes
Exception in thread "main" java.lang.ArithmeticException: / by zero
Kotlinfinally块了示例3
让我们看一个异常处理的例子, 其中发生并处理了异常。
fun main (args: Array<
String>
){
try {
val data = http://www.srcmini.com/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块。
推荐阅读
- Kotlin环境设置(命令行)
- Kotlin扩展功能
- Kotlin异常处理
- Kotlin Android Web服务-Volley库注册,登录和注销教程
- Kotlin Elvis运算符((:))
- Kotlin数据类型
- Kotlin do-while循环
- Kotlin默认名称和命名参数
- Kotlin Android WebView