Java关键字之Assert

参考博客来自:Assert断言语法与触发

一.assert关键字是什么?

      在C和C++语言中都有assert关键,表示断言

      在Java中,同样也有assert关键字,表示断言,用法和含义都差不多,与之同理的就是if(boolean)判断,如果boolean为false则抛出异常。

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

二.assert的语法       

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

               1、assert

        如果为true,则程序继续执行。

        如果为false,则程序抛出AssertionError,并终止执行。

 

               2、assert : <错误信息表达式>

        如果为true,则程序继续执行。

        如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>

 

三.如何打开断言,使其生效

        1.IDEA中默认assert(断言)是关闭,开启方式如下:

         简单来说:就是设置一下jvm的参数,参数是-enableassertions或者-ea(推荐)。

        在IDEA的Run==》Edit Configurations 选项卡中:

Java关键字之Assert_第1张图片

四. 代码调试生效

    1、assert   触发assert

public static void main(String[] args) {
        Integer q = 128;
        Integer n = 128;
        System.out.println("q ==n 结果: " + (q==n) );//只有结果为true时,程序才继续执行
        assert (q == n);
        System.out.println("程序继续执行了");
    }

       运行结果(前提必须开启断言)如下:

2、assert   不触发assert

public static void main(String[] args) {
        Integer q = 127;
        Integer n = 127;
        System.out.println("q ==n 结果: " + (q==n) );//只有结果为true时,程序才继续执行
        assert (q == n);
        System.out.println("程序继续执行了");
    }

       运行结果如下:

 

3、assert : <错误信息表达式>      触发assert异常

public static void main(String[] args) {
        Integer q = 128;
        Integer n = 128;
        System.out.println("q ==n 结果: " + (q==n) );//只有结果为true时,程序才继续执行
        assert (q == n):"超出Integer自动拆装箱范围";
        System.out.println("程序继续执行了");
    }

    运行结果如下:

Java关键字之Assert_第2张图片

4、assert : <错误信息表达式>      关闭断言,依然触发assert异常

public static void main(String[] args) {
        Integer q = 128;
        Integer n = 128;
        System.out.println("q ==n 结果: " + (q==n) );//只有结果为true时,程序才继续执行
        assert (q == n):"Integer自动拆装箱超出范围";
        System.out.println("程序继续执行了");
    }

     在IDEA的jvm参数中去掉-ea,运行结果如下

你可能感兴趣的:(Java基础积累)