编程语言
首页 > 编程语言> > java – 为什么在部署中不使用断言

java – 为什么在部署中不使用断言

作者:互联网

为什么断言通常不用于部署?
我研究过断言公共方法参数是不合适的.但是在部署中断言私有方法参数是合适的.为什么?

解决方法:

默认情况下不启用断言,您必须将-ea参数传递给JVM才能启用它们.因此,在许多情况下,部署中可能只是一个简单的遗漏.其他原因可能是性能(我没有证据表明断言会明显减慢执行速度),或者是正确的错误处理,即生产系统可能认为不适合生成AssertionErrors.

断言私有方法参数是合适的,因为您应该完全控制传递给它们的参数.公共方法OTOH从外界调用,所以你可能在通过具体的参数无法控制,因此它是更好地做到明确的说法检查和处理无效的参数恰当(例如,通过抛出一个合适的运行时异常,如抛出:IllegalArgumentException),或对于null引用,让JVM抛出NullPointerException.

标签:java,assertions
来源: https://codeday.me/bug/20190531/1188337.html