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