この記事内のKotlinのコードは、kotlin-stdlib-common 1.3.72 で確認しています。
見つけて便利だと思ったので📝です。
Javaでは、Non-nullが想定される値がnullだった際、例外を投げるコードを以下のように書けます。
if (nonNullIsExpceted == null) {
throw new IllegalStateException("nonNullIsExpceted should not be null.");
}上記のようなコードをKotlinでは以下のように書くことができます。
パターン1: throwを使う#
if (nonNullIsExpceted == null) {
throw IllegalStateException("nonNullIsExpceted should not be null.")
}
val valid = nonNullIsExpected ?: throw IllegalStateException("nonNullIsExpceted should not be null.")パターン2: error関数を使う#
if (nonNullIsExpceted == null) {
error("nonNullIsExpceted should not be null.")
}
val valid = nonNullIsExpected ?: error("nonNullIsExpceted should not be null.")Kotlinの例は、パターン1も2も同じ意味のコードとなります。 error関数の実装はこのようになっています。 渡したメッセージとともにIllegalStateExceptionを初期化しthrowしているのみです。
/**
* Throws an [IllegalStateException] with the given [message].
*
* @sample samples.misc.Preconditions.failWithError
*/
@kotlin.internal.InlineOnly
public inline fun error(message: Any): Nothing = throw IllegalStateException(message.toString())短かく書けて直感的だと思いました。 また、message引数がNon-nullで、必ず何かしらのエラーメッセージを記述するAPI仕様になっているのも良いなと思いました、まる。