打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java断言assert的使用
userphoto

2010.10.29

关注
一、assert的开启和关闭
因为JVM默认是不启动assert的。因此,你可以使用标记 –enableassertions ( 缩写 -ea ) 来开启断言功能。同样,你也可以使用标记 –disableassertions ( 缩写 -da ) 来关闭断言功能。例:
java - enableassertions AssertTest
二、assert的使用
在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:
assert expression1;
assert expression1: expression2;
在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。
1、assert <boolean表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
2、assert <boolean表达式> : <错误信息表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,并输出<错误信息表达式>。
1.assert true/false;当为false时,抛出错误,结束程序
2.assert true/false : "error info";当为false时,抛出错误,结束程序,并输出提示信息"error info"
语义含义
在运行时,如果关闭了assertion功能,这些语句将不起任何作用。如果打开了assertion功能,那么expression1的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象。如果assertion语句包括expression2参数,程序将计算出expression2的结果,然后将这个结果作为AssertionError的构造函数的参数,来创建AssertionError对象,并抛出该对象;如果expression1值为true,expression2将不被计算。
一种特殊情况是,如果在计算表达式时,表达式本身抛出Exception,那么assert将停止运行,而抛出这个Exception。
三、兼容
JDK 1.4 的默认编译模式并不支持断言,因此它的编译需要:
javac -source 1.4 Assert.java
Java代码 
public class AssertTest {
public static void main(String[] args) {
System.out.println("----start---");
int value=-1;
assert 0 < value:"value="+value;
System.out.println("----end----");
}
}
输出:
D:\java\editplus>javac -d . AssertTest.java
D:\java\editplus>java -enableassertions AssertTest
----start---
Exception in thread "main" java.lang.AssertionError: value=-1
at AssertTest.main(AssertTest.java:8)
D:\java\editplus>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java assert的用法简介
Python异常处理实例解读
Java核心教程:Java do...while循环
十一、Python assert调试程序
Perl IF…ELSE 语句 | 菜鸟教程
题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服