• 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(" ----------------- ");

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

  • 相关阅读:
    洛谷 P1706 全排列
    n皇后问题
    跳马
    [HDOJ4612]Warm up(双连通分量,缩点,树直径)
    [POJ3177]Redundant Paths(双连通图,割边,桥,重边)
    [POJ3352]Road Construction(缩点,割边,桥,环)
    [POJ3694]Network(LCA, 割边, 桥)
    [UVA796]Critical Links(割边, 桥)
    [UVA315]Network(tarjan, 求割点)
    [HDOJ2586]How far away?(最近公共祖先, 离线tarjan, 并查集)
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10861679.html
Copyright © 2020-2023  润新知