Java断言及使用
发布时间:2020-12-15 02:37:03 所属栏目:Java 来源:网络整理
导读:在 JDK 1.4 之后,Java 中增加了断言的功能。 断言(Assertion) 是一种调试程序的方式。 在 Java 中,使用 assert 关键字来实现断言 。断言的定义格式如下: assert boolean 表达式 : 详细信息 以上代码中,boolean 表达式的结果为 true,则会忽略后面的详细
在 JDK 1.4 之后,Java 中增加了断言的功能。断言(Assertion)是一种调试程序的方式。在 Java 中,使用 assert 关键字来实现断言。断言的定义格式如下:
assert boolean 表达式 : 详细信息 以上代码中,boolean 表达式的结果为 true,则会忽略后面的详细信息;如果为 false,则提示的错误内容为详细信息;如果没有声明详细信息的描述,则系统会使用默认的错误信息提示方式。以下程序使用了断言。 public static void main(String[] args) { // 定义一个数组,长度为3 int x[] = { 1,2,3 }; // 此处断言数组长度为0,肯定是错误的 assert x.length == 0; }以上程序中,语句 assert x.length == 0; 即为断言,断言条件x.length == 0 预期为 true。如果计算结果为 false,则断言失败,抛出 AssertionError。由于数组 x 的长度是不可能为 0 的,所以,此处的断言结果是错误的。但此时运行程序并不会得到任何的结果,这是因为 Java 在设计此关键字时,考虑到了系统的应用,为了防止某些用户使用 assert 作为关键字,所以在程序正常运行时断言并不会起任何的作用,如果要想让断言起作用,则在使用 Java 运行时应该加入 -enableassertions 参数,可以简写为-ea 。下面使用”-ea“运行程序,运行程序格式如下:
编译程序:javac Test.java Exception in thread "main" java.lang.AssertionError at Test.main(Test.java:6) 以上是断言错误,因为数组 x 的长度不可能是 0,但是,此时的信息是系统默认的错误信息,如果要想显示自己的错误信息,则可以使用另外一种断言声明格式。 Test 类代码修改如下: public static void main(String[] args) { // 定义一个数组,长度为3 int x[] = { 1,3 }; // 此处断言数组长度为0,肯定是错误的 assert x.length == 0 : "数组长度不为0"; }再次验证断言,出现以下信息:
Exception in thread "main" java.lang.AssertionError:数组长度不为0 使用断言需要注意以下几点:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |