2011-03-23 80 views
2

我读的断言在java.i有材料,我也看过一些关于断言的电子材料。但我无法得到主要的主题,为什么我们使用断言,它会做什么。任何人都可以解释我一般发言?java中的断言如何工作?

回答

3

在简单的话

断言主要用于测试的东西,在那里你断言[断言:申报或庄严,正式作为真正的肯定; “在上帝面前,我发誓我是无辜的]的东西,如果它失败,将引发AssertionError


更多

2

一个问题与调试程序发现有一个bug。

在内部,您可以始终检查所有变量的状态,但这样做会很耗时,但如果没有此类检查,则您的内部状态可能不会是您在任何给定时间的状态,此时任何不正确的状态都可能雪球并在晚些时候崩溃你的系统。

断言允许您确保程序在开发过程中处于正确的状态,如果不是(通过合理的消息告诉您为什么),将会发生HARD。

在发布代码中,assert语句不会执行,因此您不会减慢系统速度(此外,当它们位于真实用户面前时,“尽早失败,大声失败”可能不再是最好的策略,具体取决于应用

+0

你可以给了一句更多的解释说:“断言语句不执行,这样,当他们在现实用户面前你不拖慢系统的” – satheesh 2011-03-23 06:58:24

+0

@satheesh有一个命令行(我相信--ea)启用断言。您应该在开发过程中使用此命令行选项,但在部署过程中您的客户不会。没有这个选项,断言应该在加载时编译出来,所以它们不存在。 – 2011-03-23 17:04:01