当前位置: 代码迷 >> Java相关 >> Java基础の乱弹琴1:assert关键字
  详细解决方案

Java基础の乱弹琴1:assert关键字

热度:113   发布时间:2016-04-22 19:47:27.0
Java基础の乱弹琴一:assert关键字

一。概述

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,并输入<错误信息表达式>。
三。例子
下面给出一个例子,通过例子说明其用法:
 1 public class AssertFoo { 2     public static void main(String args[]) { 3         //断言1结果为true,则继续往下执行 4         assert true; 5         System.out.println("断言1没有问题,Go!"); 6         System.out.println("\n-----------------\n"); 7         //断言2结果为false,程序终止 8         assert false : "断言失败,此表达式的信息将会在抛出异常的时候输出!"; 9         System.out.println("断言2没有问题,Go!");10     }11 }
在Eclipse下创建类保存编译运行,输出结果
可见并没有执行assert,那么在Eclipse下如何设置开启断言呢,看下面的方法:
配置Run Configurations
菜单栏--->Run--->Run Configurations打开配置界面,在VM argument里面输入-ea即可,如下图所示
我在Test类运行配置中加了-ea,然后在Test的main函数中调用A类,在A类中加了断言,断言执行
我在A类运行配置中加了-ea,然后在Test的main函数中调用A类,在A类中加了断言,断言没有执行
断言执行结果:注意看绿框框起来那句话,没有注意的话看看上面的代码;-)
在测试过程中发现sysout和异常抛出的输出顺序飘忽不定
  相关解决方案