断言是一种经典的调试与测试方式。
断言其实就是在程序中的一条语句(assert),它对一个boolean表达式进行测试,一个正确程序必须保证该表达式的值为true,如果该值为false,则说明程序已处于不正确的状态,运行将被终止并退出——即 断言用于保证程序最基本、 最 关键的正确性。
环境
断言检查通常在开发和测试阶段开启。而在软件发布后 为提高 运行 性能,断言检查会被关闭。因此能够随时自由地选择开启或关闭断言检查显得非常重要,而这正是Java断言特性的重要功能之一。
开启的方式
默认状态下断言检查是关闭的,
-ea(e nablea ssertions) 开启断言检查,
-da (d isenableablea ssertions) 用于关闭断言检查
在Eclipse中启用断言的方法:
在Eclipse中启用断言的方法:
方法1、Window-->Preferences-->Java-->Installed JREs
选择当前正在使用的JDK条目,点击 Edit... 按钮,进入JRE Definition界面: 在 Default VM Arguments 栏输入 -ea (或 -enableassertions) 参数。
方法2、Run-->RunConfigurations,选择当前程序,并点击进入Arguments标签页,在VM arguments 栏输入 -ea(-enableassertions)参数。
以上两个方法,前者针对全局设置、后者仅 仅 对当前运行的程序有效。
DEMO
package com.yan.test;
public class TestException {
public static void main(String[] arg) {
testMethod(new String[] { "yan", "xu", "dong" });
testMethod("yan");
}
private static void testMethod(String temp) {
for (int i = 0; i < 5; i++) {
System.out.println(temp + i);
}
}
private static void testMethod(String[] temp) {
for (int i = 0; i < 5; i++) {
assert temp.length == 5 : "数据长度不正常";
System.out.println(temp[i]);
}
}
}
Result
Exception in thread "main" java.lang.AssertionError: 数据长度不正常
at com.yan.test.TestException.testMethod(TestException.java:22)
at com.yan.test.TestException.main(TestException.java:7)