Java中的“关卡”——断言(Assertion)
来源:互联网 发布:网络监控存储 编辑:程序博客网 时间:2024/05/22 16:38
断言
在防御式编程中,所有的外部因素(输入参数、环境变量等)都被看作是“邪恶”的,它们都是企图摧毁程序的罪恶本源,为了抵制它们,我们需要在程序中处处设卡检验,只有满足条件才能继续执行后续程序,以保证程序的正确性。断言(Assertion)就是用于确保程序执行正确的“关卡”,使用断言可以避免因错误的输入而导致的程序逻辑错误。
[一] 关于断言
断言是JDK1.4加入的新特性
JVM默认不启用断言功能(开启方法请看下文)
[二] 断言的语法
assert <布尔表达式> : <错误信息> ;
其中,<布尔表达式>返回true或false,用于判断是否断言成功;<错误信息>用于描述断言失败,可留空不写
[三] 小试断言
@Testpublic void demo1() { int a = 0; assert a == 1; // 输出:java.lang.AssertionError}
@Testpublic void demo2() { int a = 0; assert a == 1 : "a的值不是1"; System.out.println("a的值是" + a); // 输出:java.lang.AssertionError:a的值不是1}
@Testpublic void demo3() { int a = 1; assert a == 1 : "a的值不是1"; System.out.println("a的值是" + a); // 输出:a的值是1}
【总结】
只有断言成功才会执行后续的代码,否则会抛出AssertionError错误并终止程序
[三] 断言开启与关闭
1. 在命令行中使用-ea和-da
① 首先,我们编写一个测试类AssertTest.java
public class AssertTest { public static void main(String[] args) { assert false : "断言被执行了"; System.out.println("断言没有被执行"); }}
② 编译代码,并在默认情况下以及使用-ea/-da的情况下执行代码
- javac AssertTest.java- java AssertTest断言没有被执行- java -da AssertTest断言没有被执行- java -ea AssertTestException in thread "main" java.lang.AssertionError: 断言被执行了 at AssertTest.main(AssertTest.java:3)
【总结】
在JVM中,默认断言功能是关闭的,可以使用 -ea 对断言功能进行开启,使用 -da 对断言功能进行关闭
VM options -ea // 开启断言功能VM options -da // 关闭断言功能
2. 在Eclipse中使用断言运行某个方法
3. 在Eclipse中为整个项目开启断言功能
0 0
- Java中的“关卡”——断言(Assertion)
- java断言——Assertion
- Java源码-断言(Assertion)初接触
- java学习笔记之断言(Assertion)
- 断言(assertion)的简介
- SOAPUI测试步骤(一)——断言测试(Assertion TestStep)
- SOAPUI测试步骤(一)——断言测试(Assertion TestStep)
- assertion 断言
- Unity 5.1+ Assertion Library (断言库)
- Unity 5.1+ Assertion Library (断言库)
- 断言assertion使用
- Assertion断言的使用
- 2. assertion 断言
- 什么时候用 assertion(断言)?
- 黑马程序员学习笔记——java中的断言
- Java中的断言
- Java中的断言问题
- java中的断言assert
- leetcode 73. Set Matrix Zeroes
- 题目1040:Prime Number(素数的生成)
- java实验4.(2)插入mysql数据库
- HTML中表格width和height具体用法
- GIT命令
- Java中的“关卡”——断言(Assertion)
- java异常讲解和处理
- Javaの线程池
- struts2自主学习之动态方法调用,使用method属性,配置Result,结果类型
- java爬虫第二弹
- [kuangbin带你飞]专题一 简单搜索 -D
- MongoDB的下载和安装启动
- nyoj 6 喷水装置(一)
- Android动画系列(二)