黑马程序员技术交流社区

标题: Java关键字之assert [打印本页]

作者: 1178988315    时间: 2016-1-7 20:42
标题: Java关键字之assert
本帖最后由 1178988315 于 2016-1-8 22:21 编辑

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把原有的逻辑打破了。
而且此关键字一般用于测试,实际的程序代码大多数是没有的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2