Java8基础知识(七)断言


断言

当程序中使用大量的异常抛出来检查变量的值是否符合规定时,检测所使用的代码会保留在程序中,积累这些测试代码会导致程序越来越慢。

断言机制可以在测试期间向代码中插入检查语句,当代码发布时,这些语句能够自动被移走。

断言的语法形式如下:

// 当条件不成立时抛出AssertionError异常
assert condition;
// 当条件不成立时将表达式传入AssertionError构造器,转换成消息字符串,然后抛出异常
assert condition : expression;

启用和禁用断言

启用或禁用断言时类加载器的功能,不需要重新编译程序,在运行程序时设置选项即可。

java -enableassertions MyApp

当断言被禁用时,类加载器会跳过断言代码,为程序运行节省时间。

也可以在类甚至包中使用断言。

java -ea:MyClass -ea:com.mycompany.mylib... MyApp

也可以选择禁用某个特定类和包的断言。

java -ea:... -da:MyClass MyApp

对于没有类加载器的系统类,使用-enablesystemassertions-esa开关启用断言。

参数检查

对于文档中不抛出异常的参数约定,应当使用断言来判断其符合条件,这种约定称为前置条件

文档假设

如果使用注释来说明假设的前置条件,应当用断言来代替。这样当违反假设时可以直接抛出异常。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM