手机
当前位置:查字典教程网 >编程开发 >Java >浅析Java异常处理中断言的使用
浅析Java异常处理中断言的使用
摘要:断言的概念断言用于证明和测试程序的假设,比如“这里的值大于5”。断言可以在运行时从代码中完全删除,所以对代码的运行速度没有影响。断言的使用断...

断言的概念

断言用于证明和测试程序的假设,比如“这里的值大于 5”。

断言可以在运行时从代码中完全删除,所以对代码的运行速度没有影响。

断言的使用

断言有两种方法:

一种是 assert<<布尔表达式>> ;

另一种是 assert<<布尔表达式>> :<<细节描述>>。

如果布尔表达式的值为false , 将抛出AssertionError 异常; 细节描述是AssertionError异常的描述文本使用 javac –source 1.4 MyClass.java 的方式进行编译示例如下:

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 并终止程序的运行。

断言推荐使用方法

用于验证方法中的内部逻辑,包括:

内在不变式 控制流程不变式 后置条件和类不变式

注意:不推荐用于公有方法内的前置条件的检查。

运行时屏蔽断言

运行时要屏蔽断言,可以用如下方法:

java –disableassertions 或 java –da 类名

运行时要允许断言,可以用如下方法:

java –enableassertions 或 java –ea类名

【浅析Java异常处理中断言的使用】相关文章:

基于Java回顾之多线程同步的使用详解

Java多线程之中断线程(Interrupt)的使用详解

Java语法基础之函数的使用说明

深入解析Java中volatile关键字的作用

Effective Java (异常处理)

Java Swing 非常漂亮外观Nimbus的使用方法实例

全面解析Java中的GC与幽灵引用

深入Java分布式计算的使用分析

Java中一些基础概念的使用详解

基于jdbc处理Clob的使用介绍

精品推荐
分类导航