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

47-受检异常

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

4.11.5 受检异常

Java提供了两种异常类型:受检异常和非受检异常。其中,Error和RuntimeException及其子类都是受检异常,其余的Exception异常都属于非受检异常。受检异常和非受检异常的唯一区别在于,编译器在编译时会对受检异常进行检查,而非受检异常则不需要检查,所以受检异常需要使用try catch来捕获异常,以避免编译错误。

Kotlin不存在受检异常,原因有很多。代码如下。

Appendable append(CharSequence csq) throws IOException;

此代码来源于JDK中的StringBuilder类append方法,该方法表示任何时候将一个字符串追加到某个对象时,都需要捕获IOException异常。为什么需要捕获这个异常呢?因为append可能会触发执行I/O操作,所以它的完整代码可能是这样的。

try {
    log.append(message)
}
catch (IOException e) {
    // 必须是安全的
}