java中的assert(断言)

文章作者 100test 发表时间 2007:03:14 17:05:20
来源 100Test.Com百考试题网


断言是Java 1.4中新添加的功能,是Java中的一种新的错误检查机制,它提供了一种在代码中进行正确性检查的机制,但是这项功能可以根据需要关闭。断言包括:assert关键字,AssertionError类,以及在java.lang.ClassLoader中增加了几个新的有关assert方法。

assert最重要的特点是assert语句可以在运行时任意的开启或关闭,默认情况下是关闭的。

断言语句有两种合法的形式:aassert expression1. bassert expression1 : expression2.

expression1是一条被判断的布尔表达式,必须保证在程序执行过程中它的值一定是真;expression2是可选的,用于在expression1为假时,传递给抛出的异常AssertionError的构造器,因此expression2的类型必须是合法的AssertionError构造器的参数类型。AssertionError除了一个不带参数的缺省构造器外,还有7个带单个参数的构造器,分别为:objecteg.String boolean char int long float double。第一种形式如果抛出异常,则调用AssertionError的缺省构造器,对于第二种形式,则根据expression2值的类型,分别调用7种单参数构造器中的一种。

Aassert程序的编译javac -source 1.4 TestAssert.java(提示java1.4版本编译)

Bassert程序的运行java –ea TestAssert 或者 java –ea:TestAssert TestAssert

其它的运行参数:java -ea:pkg0... TestAssertjava –esajava –dsa(系统类断言),另外,还可以同时组合用。当一个命令行使用多项 -ea -da 参数时,遵循两个基本的原则:后面的参数设定会覆盖前面参数的设定,特定具体的参数设定会覆盖一般的参数设定

CAssertinErrorError的直接子类,因此代表程序出现了严重的错误,这种异常通常是不需要程序员使用catch语句捕捉的。

D使用assert的准则assert语句的作用是保证程序内部的一致性,而不是用户与程序之间的一致性,所以不应用在保证命令行参数的正确性。可以用来保证传递给private方法参数的正确性。因为私有方法只是在类的内部被调用,因而是程序员可以控制的,我们可以预期它的状态是正确和一致的。公有方法则不适用。此外,assert语句可用于检查任何方法结束时状态的正确性,及在方法的开始检查相关的初始状态 等等。

assert语句并不构成程序正常运行逻辑的一部分,时刻记住在运行时它们可能不会被执行。



相关文章


.Net和Java应融合
JAVA题库:格林模拟试题二(下)(4)
JAVA题库:格林模拟试题二(下)(6)
消除关于.NET的四个误解
java中的assert(断言)
Java虚拟机参数详解
Java2新的焦点子系统
带你步入J2EE殿堂:最易懂的J2EE实例
JAVA题库:格林模拟试题二(下)(5)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛