Java中的断言 Assert
今天正好遇到了,就记一下
一.作用:
仅用与编写单元测试, 一般不用于生产环境
assert 理论上和 if 类似, 但是assert 仅仅用于测试, 不能用于业务
from jdk 1.4
二.assert 关键字(Java断言)
1. 使用断言
要添加断言,只需使用assert关键字并为其赋予布尔条件
boolean dd = false;
try {
assert dd == true;
} catch (AssertionError e) {
System.out.println(e.getMessage()); // null
e.printStackTrace();
}
boolean dd = false;
try {
assert dd == true : " dd is false";
} catch (AssertionError e) {
System.out.println(e.getMessage()); // dd is false
e.printStackTrace();
}
断言将抛出一个异常信息用于构造 AssertionError
2. AssertionError处理
注意这个抛出的是Error , 而不是被捕获的 Exception, 因此不需要尝试捕获(try catch)
AssertionError extends Error
3. 在IDE中启用断言
如果发现断言无效, 则可能时ide没配置
Java中的断言 Assert的更多相关文章
- Java中的断言assert
Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在J ...
- 理解和正确使用Java中的断言(assert)
一.语法形式: Java2在1.4中新增了一个关键字:assert.在程序开发过程中使用它创建一个断言(assertion),它的语法形式有如下所示的两种形式:1.assert conditio ...
- Java中的断言assert的用法
Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,ass ...
- java 中的断言assert的使用
一.assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新. 从理论上来说,通过 assertion方式可以证明程 ...
- java中的断言
断言:也就是所谓的assertion,是jdk1.4后加入的新功能. 它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出. 当软件 ...
- python中那个断言assert的优化
Python Assert 为何不尽如人意# Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. Copy >>> assert ...
- C#中的断言(Assert)
重构-断言 现象:某一段代码需要对程序状态做出某种假设 做法:以断言明确表现这种假设 动机: 常常有这种一段代码:只有某个条件为真是,该改名才能正常运行. 通常假设这样的假设并没有代码中明确表现出来, ...
- Java中使用断言
由于断言在Java程序中用于开发和测试阶段,考虑到以后很有可能会用到,在此先记类一下. 在Java语言中,给出了3种处理系统错误的机制: 1.抛出一个异常 2.日志 3.使用断言 什么时候使用断言呢? ...
- android中单元測试中的断言assert的使用与扩展
首先看一组对照,比方说我们要測试的结果是一个Linearlaout AssertJ Android: assertThat(layout).isVisible() .isVertical() .has ...
随机推荐
- 三、linux基础命令
1.已知/tmp 目录下已经存放了test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp 下覆盖掉/tmp/test.txt,而让linux系统不提示是否覆盖 答:之所以会出 ...
- gitlab迁移版本库(保留原版本库的所有内容)
如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话,可以通过以下步骤来操作. 1) 从原地址克隆一份裸版本库,比如原本托管于 GitHub git clone --ba ...
- Codeforces Round #549 (Div. 2)B. Nirvana
B. Nirvana time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- VMware安装linux系统报错:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。
检测问题所在: 下载LeoMoon CPU-V 检查一下CPU VT-x状态是否启用 地址:http://download.csdn.net/detail/qq_22860341/9858011 如果 ...
- Heap堆
#pragma once#include<iostream>using namespace std;#include<vector> template<class T&g ...
- django2使用xadmin打造适合国人的后台管理系统(1)
python火了之后,学习python的人也越来越多了,python做web开发的话,flask.django是比较火的框架了,django是一个比较大的框架,也是一个快速开发利器.但是,django ...
- 基于Java软引用机制最大使用JVM堆内存并杜绝OutOfMemory
题记:说好的坚持一周两篇文章在无数琐事和自己的懒惰下没有做好,在此表达一下对自己的不满并对有严格执行力的人深表敬意!!!! -------------------------------------- ...
- iOS核心动画之视觉效果
圆角 cornerRadius确定圆角的大小 masksToBounds确定要不要裁减圆角以外的界面 图层边框 borderWidth 边框的粗细,point是衡量值. borderColor 边框的 ...
- java字段中初始化的规律与如何用静态成员函数调用非静态成员
java字段中初始化的规律: 执行以下代码,出现的结果是什么? class InitializeBlockClass{ { field=200; } public int field=100; pub ...
- 北航软院2013级C#期末考试部分考题解答
博主注:本渣渣水平有限,文中若有不对的地方敬请指出,谢谢. 本文中大部分图片来自老师的PPT,感谢邵老师,想要的可以点击右边QQ联系我:) 一.选择题 2.Wrong statement? A.dou ...