1.先看这样一个例子,这个是数据越界异常,所以需要进行异常捕获处理
fun main(args: Array<String>) {
var arg1 = args[0]
println(arg1)
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0at com.bigen.test.Example14Kt.main(Example14.kt:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
2.加上try/catch ,finally会在任何情况下执行
fun main(args: Array<String>) {
try {
var arg1 = args[0]
println(arg1)
}catch (e:ArrayIndexOutOfBoundsException)
{
println("亲爱的朋友,您的数组越界了")
}finally {
println("再见")
}
}
3.try/catch也是表达式
fun main(args: Array<String>) {
println(division())
}
fun division(): Int {
var x = try {
100 / 0
} catch (e: Exception) {
0
}
return x
}