AJPFX解析Java关键字之assert

Java有许多关键字,但是这个关键字估计很少有人了解,今天就跟大家谈一谈这个关键字吧。

先说明一下,这个关键字开发中用的极少,感兴趣的朋友可以了解一下。

一、概述

在C和C++语言中都有assert关键,表示断言。
在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。

二、语法

在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言检查,则需要用开关-enableassertions或-ea来开启。

assert关键字语法很简单,有两种用法:

1、assert <boolean表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。

2、assert <boolean表达式> : <错误信息表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>。

三、应用实例

下面给出一个例子,通过例子说明其用法:

public class AssertFoo {
public static void main(String args[]) {
//断言1结果为true,则继续往下执行
assert true;
System.out.println(“断言1没有问题,Go!”);

    System.out.println("\n-----------------\n");

    //断言2结果为false,程序终止
    assert false : "断言失败,此表达式的信息将会在抛出异常的时候输出!";
    System.out.println("断言2没有问题,Go!");
}

}

保存代码到C:\AssertFoo.java,然后按照下面的方式执行,查看控制台输出结果:

1、编译程序:
C:>javac AssertFoo.java

2、默认执行程序,没有开启-ea开关:
C:>java AssertFoo
断言1没有问题,Go!


断言2没有问题,Go!

3、开启-ea开关,执行程序:
C:>java -ea AssertFoo
断言1没有问题,Go!


Exception in thread “main” java.lang.AssertionError: 断言失败,此表达式的信息将
会在抛出异常的时候输出!
at AssertFoo.main(AssertFoo.java:10)

以上就是assert关键字,大家可以根据自己的需求使用。但是注意不要被assert把原有的逻辑打破了。
而且此关键字一般用于测试,实际的程序代码大多数是没有的。

猜你喜欢

转载自blog.csdn.net/AJPFX/article/details/90204473