d.sunnyone.org
sunnyone.org

ページ

2016-08-08

Java → Kotlin 連携時は検査例外に注意する

Kotlinには検査例外はない(Kotlin does not have checked exceptions)。しかし、Javaにおいては検査例外として取り扱われるクラスを普通にthrowすることができる。

コード例にすると、以下の通り。

class KotlinSample {
fun hello() {
throw Exception("checked exception?")
}
}
view raw KotlinSample.kt hosted with ❤ by GitHub

public class JavaSample {
public static void main(String[] args) {
KotlinSample k = new KotlinSample();
k.hello();
}
}
view raw JavaSample.java hosted with ❤ by GitHub


もともとJavaでも宣言していなくても検査例外を投げてくるときは投げてくる(ERR06-J. 宣言されていないチェック例外をスローしない)が、throwsが目印にもならないという点で注意が必要である。