复制代码
public class Welcome{

    public static void main(String[] args){
        assert false;
        System.out.println("Welcome world");
    }

}
复制代码

cmd下输入命令

javac Welcome.java

java Welcome

输出为

Welcome world

java默认是不开启断言的,这种情况下assert语句将会被跳过不执行。

为了执行assert语句,需要在添加-ea参数,cmd下重新输入命令

javac Welcome.java
java -ea Welcome

此时输出为

Exception in thread "main" java.lang.AssertionError
        at Welcome.main(Welcome.java:3)

java断言机制要求assert后面的布尔表达式必须返回一个true值,才会继续往下执行;如果不为true,则会抛出一个Exception,这是一个未检查异常。

assert还可以返回一个提示信息,写法如下

复制代码

public class Welcome{

public static void main(String[] args){
    assert false:"assert is false"; //用一个冒号分隔
    System.out.println("Welcome world");
  }

}

复制代码

cmd下输入命令

javac Welcome.java

java Welcome

输出为

Exception in thread "main" java.lang.AssertionError: assert is false //assert 提示
  at Welcome.main(Welcome.java:3)

断言是一个比较简单的机制,用于调试程序。

posted on 2014-12-18 21:38  小光  阅读(604)  评论(0编辑  收藏  举报