欢迎来到天天文库
浏览记录
ID:59355465
大小:34.00 KB
页数:4页
时间:2020-09-04
《断言的使用方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、assert是在J2SE1.4中引入的新特性,assertion就是在代码中包括的布尔型状态,程序员认为这个状态是true。一般来说assert在开发的时候是检查程序的安全性的,在发布的时候通常都不使用assert。在1.4中添加了assert关键字和java.lang.AssertError类的支持。首先,我们有必要从一个例子说起assertpublicclassAssertTest{publicstaticvoidmain(String[]args){AssertTestat=newAssertTest();at.assertMe(true);at.assertM
2、e(false);}privatevoidassertMe(booleanboo){assertboo?true:false;System.out.println(truecondition);}}程序中包含了assert的话,你要用javac-source1.4xxx.java来编译,否则编译器会报错的。要想让assert得部分运行的话,要使用java-eaxxx来运行,否则包含assert得行会被忽略。下面我们运行javac-source1.4AssertTest.javajava-eaAssertTest看看结果的输出是:trueconditionExcepti
3、oninthreadmainjava.lang.AssertionErroratAssertTest.assertMe(AssertTest.java:13)atAssertTest.main(AssertTest.java:7)当我们运行at.assertMe(true)得时候,由于assertboo?true:false相当于asserttrue;因此没有任何问题,程序往下执行打印出truecondition,但是执行at.assertMe(false)的时候相当于assertfalse,这个时候解释器就会抛出AssertionError了,程序就终止了。大家必须
4、清楚AssertionError是继承自Error得,因此你可以不再程序中catch它的,当然你也可以在程序中catch它然后程序可以继续执行。例如:publicclassAssertTest{publicstaticvoidmain(String[]args){AssertTestat=newAssertTest();try{at.assertMe(true);at.assertMe(false);}catch(AssertionErrorae){System.out.println(AsseriontErrorcatched);}System.out.printl
5、n(goon);}privatevoidassertMe(booleanboo){assertboo?true:false;System.out.println(truecondition);}}assert还有另外一种表达的方式,就是assertexp1:exp2;其中exp1是个boolean返回值得表达式,而exp2可以是原始的数据类型或者对象都可以例如:booleanboo=true;Stringstr=null;assertboo=false:str=error;我们刚开始讲得assertexp1得形式,当exp1是false得时候,AssertionErr
6、or得默认构造器会被调用,但是assertexp1:exp2这样的形式,当exp1为true的时候后面exp2被或略,如果false的话,后面的表达式的结果会被计算出来并作为AssertionError得构造器参数。看下面的例子:publicclassAssertTest{publicstaticvoidmain(String[]args){AssertTestat=newAssertTest();at.assertMe(true);at.assertMe(false);}privatevoidassertMe(booleanboo){Strings=null;ass
7、ertboo?true:false:s=helloworld;System.out.println(truecondition);}}运行的时候会得到这样的结果trueconditionExceptioninthreadmainjava.lang.AssertionError:helloworldatAssertTest.assertMe(AssertTest.java:14)atAssertTest.main(AssertTest.java:7)Assert最好不要滥用,原因是assert并不一定都是enable的,下面两种情况就不应该用asser
此文档下载收益归作者所有