You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift的fatalError()在Kotlin中的等效实现及when分支应用方法

Kotlin中对应Swift fatalError()的等效方法及示例实现

嘿,刚好对这个点挺熟悉的,来给你唠唠:

1. 直接对应Swift fatalError()的Kotlin方法

Swift里的fatalError()用来直接触发程序崩溃并输出错误信息,在Kotlin里最接近的等效方法是**error()函数**。它会抛出一个IllegalStateException,直接终止程序运行,同时可以传入自定义的错误提示,用法和fatalError()几乎一致。

比如:

error("This code path should never be reached!")

另外,如果你想更明确地指定异常类型,也可以直接抛出特定的运行时异常,比如:

throw IllegalArgumentException("Invalid input received")

不过error()是最便捷的“一键崩溃”方式,和fatalError()的使用场景完全匹配。

2. 你的when表达式示例实现

针对你给出的代码,只需要在else分支里调用error()就能达到和Swift里fatalError()一样的效果,完整代码如下:

val foo = when(bar) {
    "one" -> true
    "two" -> false
    else -> error("Unexpected value for bar: $bar")
}

这样当bar不是"one"或"two"时,程序会立刻崩溃,并输出你指定的错误信息,完全符合你的需求。

虽然确实像你说的,这类场景通常有更优雅的解决方案(比如用枚举替代字符串、用密封类约束输入范围,或者返回Boolean?表示未知情况),但如果就是需要快速触发崩溃来标记“不该走到这里”的代码路径,上面的方式就是最直接的。

内容的提问来源于stack exchange,提问作者Maciej Trybiło

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:00:36