课时124:assert断言
摘要:assert断言的含义以及使用
1.断言的引入
2.生活实例理解断言
3.Java 中断言的使用
01.断言的引入
从 JDK1.4 开始,Java 追加了一个非常有用的功能 —— 断言。那什么是断言呢?简单来说,断言就是确定代码执行到某一行之后,其结果一定是我们所期待的结果。
02.生活实例理解断言
为了更好地理解,举个生活中的例子。假设有一条胡同,里面有很多宅子。有一天早上,林强在跑步时,突然被人用刀捅死在胡同里。这时王建走过来,看到有个人(高登)蹲在旁边,手里还拿着刀。王建立刻报警,吴警官和朱警官赶来。王建断言:“肯定是高登杀的人!” 这就是一个断言的例子,断定高登是凶手。
但后来经过调查发现,真正杀死林强的是林陆。这就告诉我们,在现实中,断言并不一定是准确的,它可能存在偏差。在实际开发中也是如此,断言可能会有错误,但这种偏差不应该影响程序的正常执行。
在传统的 C 语言和 C++ 中都是支持断言的,而 Java 直到 1.4 之后才引入断言。
03.Java 中断言的使用
接下来,我们看看在 Java 中断言到底该怎么用。
3.1代码示例
我们写一个简单的程序来演示断言的操作。
public class JavaDemo { public static void main(String args [ ]) throws Exception { int x = 10; // 中间会经过许多的x变量的操作步骤 assert x == 100 : "X的内容不是100"; System.out.printlr(x); } }
在这个例子中,我们先定义了一个变量x并赋值为 10,然后经过一系列操作,最后断言x的值应该等于 100。如果断言失败,就会提示 “X 的内容不是 100”。
3.2执行结果分析
按照现在的程序,这个断言显然是错误的。那我们编译并执行这个程序,会发现程序并没有出错。这是因为在 Java 中,断言默认是不开启的。
3.3开启断言的方法
如果要启用断言,必须在程序执行的时候加入参数。具体来说,要加入-ea(enable assertion,启用断言)。
当我们在命令行执行java -ea JavaDemo时,就会看到断言失败的错误提示,这表明断言功能已经生效。
由此可见,在 Java 里面,断言并没有被设置为程序必须执行的步骤,而是需要在特定环境下才可以开启,它只是一种检测手段。