java学习日志assertion(六)

断言(assertion)

assertion是一种经典的调试、测试方式.

在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个程序正确必须保证这个boolean表达式的值为true;如果该值为false,报错,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。



在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

  1. assert expression1;
  2. assert expression1: expression2;
在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。

实例代码:

Base.java

import  java.lang.AssertionError;
class Base
{
  public void baseMethod()
  {
    assert      false : "Assertion failed:This is base ";// 总是assertion失败
    System.out.println("Base Method");
  }
}

Derived.java
import  java.lang.AssertionError;
class Derived  extends Base
{
  public void derivedMethod()
  {
    assert false: "Assertion failed:This is derive";// 总是assertion失败
    System.out.println( "Derived Method" );
  }
  public static void main( String[] args )
  {
    try
    {
      Derived derived = new Derived();
      
      derived.derivedMethod();
	  derived.baseMethod(  );
    }
    catch( AssertionError ae )
    {
      System.out.println(ae);
    }
  }
}

查看没有开启断言的情况:

javac Derived.java

java  Derived


查看开启所有断言的情况
java -ea Derived


查看仅开启Base的断言情况:

java -ea:Base Derived

你可能感兴趣的:(java)