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