
240 第
8
章
使用
t r y/c a t c h
捕获异常
通过将有风险的代码包在tr y/catc h 块中可以捕获异常。
tr y/
catch
块告诉编译器在你要执行的代码中可能会有异常发生,而你准
备处理它。编译器并不关心处理的方式,它只关注声明处理异常这件
事。
这是
try/c atc h
块的样子:
fun myFunction(str: String) {
try {
val x = str.toInt()
println(x)
} catch (e: NumberFormatException) {
println("Bummer")
}
println("myFunction has ended")
}
try/c atc h
块的try部分包含可能引起异常的危险代码。在上面的例
子中是这部分:
try {
val x = str.toInt()
println(x)
}
它的catch部分指定了想要捕获的异常以及想要在捕获后执行的代
码。所以如果我们的危险代码抛出一个
NumberFormatException
,
我们将像这样捕获它并打印出一条重要的信息:
我要
TRY
一下这项
高风险的运动,如
果失败的话,我也会
CATCH
住自己。
catch (e: NumberFormatException) {
println("Bummer")
}
然后执行
catch
块后面的所有代码,例子中的代码是:
println("myFunction has ended")
这是
try
这是
catch
只有在异常被捕获时才会执行这行