在生产代码中使用 Check 和 Require 是否安全? - 科特林
Is it safe to use Check and Require in production code? - Kotlin
我从多个来源了解到,我们应该避免在生产中使用 assert
,因为如果 JVM 上未启用 -ea
标志,则不会抛出异常。
然而,据我所知,check
和 require
并不适用,即无论 JVM 标志或任何相关设置如何,它们总是会抛出异常。
我只是想在交付生产之前通过询问这里来仔细检查使用 check
和 require
是否安全。
require
和 check
绝对可以用于生产代码,它会在意外状态的情况下抛出 IllegalArgumentException
,而不管 -ea
。
此外,这样做可以被认为是一种很好的做法,因为它使输入检查一致,更具可读性,并允许智能转换为非空类型(通过 kotlin 合约)。
我从多个来源了解到,我们应该避免在生产中使用 assert
,因为如果 JVM 上未启用 -ea
标志,则不会抛出异常。
然而,据我所知,check
和 require
并不适用,即无论 JVM 标志或任何相关设置如何,它们总是会抛出异常。
我只是想在交付生产之前通过询问这里来仔细检查使用 check
和 require
是否安全。
require
和 check
绝对可以用于生产代码,它会在意外状态的情况下抛出 IllegalArgumentException
,而不管 -ea
。
此外,这样做可以被认为是一种很好的做法,因为它使输入检查一致,更具可读性,并允许智能转换为非空类型(通过 kotlin 合约)。