JDK1.4新特性断言怎么用(jdk,编程语言)

时间:2024-05-10 10:57:05 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    JDK1.4%E6%96%B0%E7%89%B9%E6%80%A7%E6%96%AD%E8%A8%80%E6%80%8E%E4%B9%88%E7%94%A8

JDK1.4中引入的一个新特性之一就是断言(assert),为程序的调试提供了强有力的支持,以下的文档根据SUNTEC内容及相关内容组成。
源代码:

public class AssertExample {
public static void main(String[] args) {
int x = 10;

if (args.length > 0) {
try {
x = Integer.parseInt(args[0]);
} catch (NumberFormatException nfe) {
/* Ignore */
}
}

System.out.println("Testing assertion that x == 10");
assert x == 10:"Our assertion failed";
System.out.println("Test passed");
}
}

由于引入了一个新的关键字,所以在编译的时候就需要增加额外的参数,要编译成功,必须使用JDK1.4的javac并加上参数´-source 1.4´,例如可以使用以下的命令编译上面的代码:
javac -source 1.4 AssertExample.java

以上程序运行使用断言功能也需要使用额外的参数(并且需要一个数字的命令行参数),例如:
java -ea AssertExample 1

程序的输出为:
Testing assertion that x == 10
Exception in thread "main" java.lang.AssertionError: Our assertion failed
at AssertExample.main(AssertExample.java:20)

由于输入的参数不等于10,因此断言功能使得程序运行时抛出断言错误,注意是错误,这意味着程序发生严重错误并且将强制退出。断言使用boolean值,如果其值不为true则抛出AssertionError并终止程序的运行。
由于程序员的问题,断言的使用可能会带来副作用,例如:
boolean isEnable=false;
//...
assert isEnable=true;

这个断言的副作用是因为它修改程序变量的值并且没有抛出错误,这样的错误如果不细心检查很难发现。但是同时我们可以根据以上的副作用得到一个有用的特性,根据它测试是否将断言打开了。

public class AssertExample2 {
public static void main(String[] args) {
boolean assertEnable=false;
assert assertEnable=true;

if (assertEnable==false)
{
throw new RuntimeException("Assertions should be enable");
}
}
}

如果我们不使用-ea参数运行上面的程序,则控制台将输出:

Exception in thread "main" java.lang.RuntimeException: Assertions should be enab
le
at AssertExample.main(AssertExample.java:14)

本文:JDK1.4新特性断言怎么用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Jsp/Servlet接收FORM表格参数时输出乱码怎么处理下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18