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 ...
随机推荐
- XSSFWorkbook实现导出excel
1.pom.xml中加入poi依赖: <!-- poi --> <dependency> <groupId>org.apache ...
- 手动博客重定向 https://www.cnblogs.com/kelthuzadx/
https://www.cnblogs.com/kelthuzadx/ 博客狂魔又㕛叒换地址了
- 单据列表里无法找到ERP系统开发需求单,但是业务对象里可以找到
当从测试库迁移正式库时,如果新增了子系统,那么两边的子系统ID是不一样的 在BOS里修改单据的子系统只能修改业务对象列表里的子系统ID,单据列表里没有跟着一起修改 所以单据列表里的子系统ID需要手工去 ...
- [软件工程]项目选择与NABCD模型分析
项目 内容 这个作业属于哪个课程 2019春季计算机学院软件工程(罗杰) 这个作业的要求在哪里 团队项目选择 这课程的目标是 以实践形式熟悉软件开发流程,团队开发,合作学习 本次作业对课程的帮助是 确 ...
- 128th LeetCode Weekly Contest Complement of Base 10 Integer
Every non-negative integer N has a binary representation. For example, 5 can be represented as &quo ...
- mongo嵌套查询
db.getCollection('TradeBookingRepresentation').find({uitid:'168282:20190214010009224', tradeVersion: ...
- spring的总结
1. 第一天 问题:怎样的程序是一个优秀的程序 可维护性好,可扩展性好,性能优秀 问题:业界对象提供什么的概念 高内聚,低耦合,也就是尽量使代码对应的功能写在对应的模块,并且尽量减少类与类之间的关系, ...
- Map.Entry使用详解
1.Map.Entry说明 Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是 ...
- 学习总结 —— python
1.了解python 学习python 3 入门知识 python 库 .包 .模块 2.了解pycharm Pycharm 导入 Python 包.模块 pycharm 快捷键 3.了解djan ...
- SpringCloud---服务容错保护---Spring Cloud Hystrix
1.概述 1.1 在分布式架构中,存在着许多的服务单元,若一个单元出现故障,很容易因依赖关系引发故障的蔓延,最终导致整个系统的瘫痪: 为了解决这样的问题,产生了断路器等服务保护机制: 1.2 分布式架 ...