可检查的异常

Kotlin不支持可检查的异常。有很多原因不需要支持这个特性,但是我们仍然要提供一个简单的例子。

下面的例子是一个JDK中的接口,该接口实现了StringBuilder类。

Appendable append(CharSequence csq) throws IOException;

它的签名信息说明了什么呢?这个签名的意思是添加一个字符串给某个对象(比如StringBuilder,某种类型的日志,输出打印等),调用方法处必须捕获一个IOExceptions。为什么呢?因为其有可能使用IO(Writer也实现了Appendable)。因此最终导致如下形式的代码:

try {
    log.append(message)
}
catch (IOException e) {
    // Must be safe
}

这样做一点好也没有,请查看Effective Java的item 65:不要忽略异常。

Bruce Eckel说了Does Java need Checked Exceptions?

对较小的程序的检查可以增强开发者的生产力和增强代码的质量,但是对于大型软件开发的经验来看,这样反而会降低生产力和很少或不会增加代码质量。

其他的引用:

results matching ""

    No results matching ""