在生产代码中使用 Check 和 Require 是否安全? - 科特林

Is it safe to use Check and Require in production code? - Kotlin

我从多个来源了解到,我们应该避免在生产中使用 assert,因为如果 JVM 上未启用 -ea 标志,则不会抛出异常。

然而,据我所知,checkrequire 并不适用,即无论 JVM 标志或任何相关设置如何,它们总是会抛出异常。

我只是想在交付生产之前通过询问这里来仔细检查使用 checkrequire 是否安全。

requirecheck 绝对可以用于生产代码,它会在意外状态的情况下抛出 IllegalArgumentException,而不管 -ea

此外,这样做可以被认为是一种很好的做法,因为它使输入检查一致,更具可读性,并允许智能转换为非空类型(通过 kotlin 合约)。