读书人

预言 -assertion

发布时间: 2012-10-20 14:12:47 作者: rapoo

断言 --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)

?

?

?

?

?

读书人网 >编程

热点推荐