检查异常

如上所述,Kotlin没有检查异常。因此,正常情况下,Kotlin函数Java签名不会抛出异常。因此如果我们有一个Kotlin的函数如下所示:

// example.kt
package demo
fun foo() {
    throw IOException()
}

我们想要在Java中调用它并捕获异常:

// Java
try {
    demo.Example.foo();
}
catch (IOException e) { // error: foo() does not declare IOException in the throws list
    // ...
}

我们会在上述代码中在Java编译器中得到一个错误消息,因为foo()没有申明IOException。为了解决这个问题,可以在Kotlin中使用@Throws注解。

@Throws(IOException::class)
fun foo() {
    throw IOException()
}

results matching ""

    No results matching ""