当前位置:嗨网首页>书籍在线阅读

43-异常类

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.11.1 异常类

与Java类似,Kotlin的所有异常类都是Throwable类的子类,每个异常类成员都包含异常信息、堆栈信息和可选的异常原因。

如果需要主动抛出异常对象,而不进行任何处理,可以使用throw表达式。代码如下。

throw MyException("This is error")   // MyException继承自Throwable

如果直接在函数内部抛出异常,则函数将在抛出异常的地方结束;如果不希望函数结束,则必须捕获被抛出的异常并对它进行处理。和Java类似,要捕获异常, 可以使用try表达式。代码如下。

try {
    //某些逻辑处理
}
catch (e: SomeException) {
    //异常处理
}
finally {
    //可选finally代码块
}

在上面的表达式中,有以下几点需要注意。

  • try语句块:此语句块表示要尝试运行的代码,try语句块中代码受异常监控,当代码发生异常时会抛出异常对象。
  • catch语句块:此语句块会捕获try代码块中发生的异常并进行异常处理,catch语句带一个Throwable类型的参数,表示可捕获异常类型。catch语句可以有多个,用来匹配多个异常中的一个,一旦成功就不再尝试其他匹配。
  • finally语句块:紧跟catch语句块并且总是在方法返回前执行,而不管try语句块是否发生异常。提供finally语句块的目的是给程序一个补救的机会。