Nothing
throw是Kotlin中的表达式,因此你可以使用它,比如作为Elvis表达式的一部分:
val s = person.name ?: throw IllegalArgumentException("Name required")
throw表达式的类型是特殊类型Nothing。这个类型没有值,被用来标记永远不能到达的代码位置。在你的代码中,你可以使用Nothing来标记一个永远不返回的函数:
fun fail(message: String): Nothing {
throw IllegalArgumentException(message)
}
当你调用这个函数时,编译器会知道在调用之外执行不会继续。
val s = person.name ?: fail("Name required")
println(s) // 's' is known to be initialized at this point