由于Kotlin不允许使用隐式null值/变量,是否引入KotlinNullPointerException
来明确表示由NPE
引起的!!
?这是NullPointerException
的子类的唯一目的吗?
最佳答案
从1.3版开始,Kotlin仅在KotlinNullPointerException
运算符检查失败的情况下才抛出!!
。这与其他可能引发NullPointerException
的情况(例如,在类构造期间访问未初始化的成员)不同。
但是请注意,在Kotlin 1.4中,有计划消除这种区别:所有此类失败的检查将仅抛出NullPointerException
,因此其继承者KotlinNullPointerException
将变得未使用。您可以在1.3.50版本发布的公告博客中了解更多相关信息:https://blog.jetbrains.com/kotlin/2019/08/kotlin-1-3-50-released/