断言 --assertion
断言是一种经典的调试与测试方式。?
断言其实就是在程序中的一条语句(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)
?
?
?
?
?