正 文

浅析JDK 1.4“断言”


www.7dspace.com  更新日期:2006-1-3 1:46:44  七度空间


断言(Assertion)是JDK 1.4引入的一项强大的编程功能,它能帮助你调试和维护自己的Java代码。简单说,断言是Java编程语言中的一个语句,允许你检测有关一个程序的假设。本文仔细探讨了如何使用断言。

为什么要使用断言?

断言是用于检测一个条件的语句,某种程度上就像一个if语句。如果违反条件,它就触发一个错误,让你知道应该在何处修订自己的假设。这是一种帮你减少出错机率的工具,尤其是减少那些与预期不符的错误。

那么,为什么要使用断言,而不使用传统方法(比如if-then-else,switch-case-default或者try-catch)呢?断言是专为调试而设计的,其他方法则主要用于生产。通过断言,可检测自己的逻辑是否正确,而不是通过它来捕捉不可控制的异常。

许多开发者都认为断言是最快和最有效的调试方式。比较以下代码即可看出差异:

If-then-else风格:

if (i % 3 != 0) {
if (i < 0)
{
System.err.println("Error in Variable i");
return -1;
}
System.out.println("Change $"+i%3);

断言风格:

if (i % 3 != 0) {
assert i > 0;
System.out.println("Change $"+i%3);
}

以上两段代码的工作方式几乎完全相同。如果变量i小于0(这是不正常的),第一段代码会报告Error in Variable i。第二段代码则引发一个断言错误,指出发生错误的行号。显然,断言方式所需的行数要少得多。

在代码中使用断言

有三种方式可在Java代码中使用断言。表A对此进行了总结。

表A

语法 例子
assert Expression1; assert i%3==2;
assert Expression1 : Expression2; assert i%3==2 : "Wow, Error";
throw new AssertionError(Expression1); throw new AssertionError("Oh no");

3页,页码:[1] [2] [3] 

上一篇:PHP 远程过程调用 —— phprpc
下一篇:巧用桌面工具Style XP 让系统展现你的个性
作者:周靖翻译  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐