Kotlin 異常

weixin_33871366發表於2017-05-25

Kotlin 的異常和 Java 的一樣, try...catch...finally程式碼塊處理異常,唯一一點不同是:Kotlin 的異常都是 Unchecked exceptions。

checked exceptions 是必須在方法上定義並且處理的異常,比如 Java 的 IoException。
Unchecked exceptions 不是必須處理的,比如 NullPointerException。

Kotlin 的異常這麼設計,估計是嘗試修正 Java 上異常沒有達到理論效果。

Kotlin 異常的使用和 Java 一樣:

val input = Files.newInputStream(path)
try {
    var byte = input.read()
    //
} catch (e: IOException) {
    // logcat
} finally {
    input.close()
}

方法採用註解的方式丟擲異常。

@Throws(IOException::class)
fun createDirectory(file: File) {
    if (file.exists())
        throw IOException("Directory already exists")
    file.createNewFile()
}

參考
《Programming Kotlin》Stephen Samuel ,Stefan Bocutiu
《Kotlin in Action》Dmitry Jemerov,Svetlana Isakova

相關文章