J2SE 断言 [Assert]

TestAssertion.java

代码:

/**
 * 断言 [Assert]
 *  从jdk1.4版本开始,java语言中引入了断言 [Assert]
 *  机制,允许java开发者在代码中加入一些检查语句,主要用于程序调试目的:
 *
 *   1、断言机制在用户定义的boolean表达式 [判定条件]结果为false时抛出一个Error对象,其类型为AssertionError
 *
 *   2、当我们需要在约定的条件不成立时中断当前操作的话,可以使用断言;
 *  
 *   3、作为Error的一种断言失败也不需要捕获处理或申明抛出,一旦出现了则终止程序,不必进行补救和恢复;
 *
 *  启用胡禁用断言
 *   开启断言功能:
 *    java运行时环境默认设置为关闭断言功能,因此在使用断言以前,血药在运行java程序时开启断言功能;
 *
 *    java -ea MyApClass
 *    或者:
 *    java -enableassertions MyAppClass
 *  
 *   关闭断言功能:
 *    java -da MyAppClass
 *    或者:
 *    java -disableassertion MyAppClass
 *   
 *
 *
 *
 */
package com.b510.examples.断言.action;

/**
 * @author Hongten
 *
 * @time 2011-8-11 2011
 */
public class TestAssertion {

 /**
  * @param args
  */
 public static void main(String[] args) {
  new TestAssertion().process(-12);
  new TestAssertion().message(-2);

 }

 public void process(int age) {
  assert age >= 0;
  System.out.println("你的年龄是: " + age);
 }

 public void message(int age) {
  assert age >= 0 : "年龄超出合理范围!";
  System.out.println("你的年龄是: " + age);
 }

}

***************************Hongten************************

运行效果:

***************************编译************************
E:\test\worksplace\断言>javac TestAssertion.java

***************************默认执行************************

E:\test\worksplace\断言>java TestAssertion
你的年龄是: -2
你的年龄是: -12

***************************开启断言************************

E:\test\worksplace\断言>java -ea TestAssertion
Exception in thread "main" java.lang.AssertionError: 年龄超出合理范围!
        at TestAssertion.message(TestAssertion.java:14)
        at TestAssertion.main(TestAssertion.java:3)

***************************开启断言************************

E:\test\worksplace\断言>java -enableassertions TestAssertion
Exception in thread "main" java.lang.AssertionError: 年龄超出合理范围!
        at TestAssertion.message(TestAssertion.java:14)
        at TestAssertion.main(TestAssertion.java:3)

***************************关闭断言************************

E:\test\worksplace\断言>java -da TestAssertion
你的年龄是: -2
你的年龄是: -12

***************************关闭断言************************

E:\test\worksplace\断言>java -disableassertions TestAssertion
你的年龄是: -2
你的年龄是: -12

原文地址:https://www.cnblogs.com/hongten/p/2134836.html