java断言assert的使用

一、assert的开启和关闭

因为JVM默认是不启动assert的。因此,你可以使用标记 –enableassertions ( 缩写 -ea ) 来开启断言功能。同样,你也可以使用标记 –disableassertions ( 缩写 -da ) 来关闭断言功能。例:

java - enableassertions AssertTest

二、assert的使用

语法表示

 

在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

  1. assert expression1;
  2. 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

 

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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值