Eclipse 下使用断言功能

所谓断言(assertion)是一个Java语句,布尔表达式,程序员认为在程序执行时该表达式的值应该为true。系统通过计算该布尔表达式执行断言,若该表达式为false系统会报告一个错误。

断言是通过assert关键字来声明的,断言功能的使用有两种格式:

assert expression ;     或者   assert expression : detailMessage ;

其中,expression为布尔表达式,detailMessage是基本数据类型或Object类型的值。当断言语句被执行时,Java计算expression的值,如果其值为false,抛出AssertionError异常。对于第二种带有一个详细信息的断言语句,将使用AssertionError类的与消息的数据类型匹配的构造方法。由于AssertionError类是Error类的子类,当断言为false时,程序将在控制台显示一条消息并终止程序的执行。

Eclipse默认是没有开启断言功能的,所以你使用断言也不会看到效果的,首先我们用以下步骤打开断言的开关:

在MyEclipse中
 Windows--> Preferences--->Java--->Installed JREs--->点击正使用的JDK--->Edit--->
 Default VM Arguments文本框中输入:-ea

 如下图

 

打开之后,用下面的代码进行测试:

public class AseertTest {
    
    public boolean flag = true;// 改变flag值然后查看控制台输出
    
    public boolean isValid(){
        
        return flag;
    }

    public static void main(String args[]){

        AseertTest assertion = new AseertTest();
        assert assertion.isValid() : "Flag must be true!";
        System.out.println("assert end");
    }
}

更改flag的值为false,使条件无法测试通过,这时就会抛出如下异常,也就说明断言已经起作用了。

 

posted @ 2013-04-28 14:29  十年半山  阅读(1675)  评论(0编辑  收藏  举报