断言(assert)
断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。
简单点说,断言指的就是,将结果判断说明,如卖西瓜的老大爷指着他家的西瓜说这个就是一个西瓜,那么这个断言就会成立。但是卖西瓜的老大爷指着他家的西瓜说我卖的西瓜都是世界上NO.1 的甜。那么我们知道这存在很大的不确定性,所以这个断言就不会成立。 Java使用断言的关键字是assert。 IDEA,JavaSE工程需要开启断言功能
参考地址:https://www.cnblogs.com/noKing/p/7978092.html 方式一:
private static void test1() {
String str = null;
/*
assert str != null;
等同于:
if (str == null) throw new AssertionError();
*/
assert str != null;
System.out.println("str = " + str);
}
运行效果:

方式二:
private static void test2() {
String str = null;
/*
等同于:
if (str == null) throw new AssertionError("我是:" + str);
*/
assert str != null : "我是:" + str;
System.out.println("str = " + str);
}
运行效果:

方式三:
private static void test3() {
int i = -1;
/*
等同于:
if ((i <= 0)) throw new AssertionError();
*/
assert (i > 0);
System.out.println("i = " + i);
}
运行效果:

小结:
断言其实是异常的一种处理方式,更加的武断一点,比如我断言:从我这边过要收20元才能过去。给19都不行。 通常用来判断变量对象是否为null。并且对象为null通常都会抛异常。
断言(assert)的更多相关文章
- 断言(assert)的用法
我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”. 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解 ...
- C语言中断言ASSERT
我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错". 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种&qu ...
- 使用断言assert
之前有看过关于Assert的书,但是不懂得如何去用,最近看别人写的代码有用这个断言(assert),今天自己动手看看如何使用断言. 断言(assert)的语义如下:如果表达式的值为0(假),则输出错误 ...
- 断言Assert的使用
转载地址:http://www.cnblogs.com/moondark/archive/2012/03/12/2392315.html 我一直以为assert仅仅是个报错函数,事实上,它居然是个宏 ...
- K:java 断言 assert 初步使用:断言开启、断言使用
@转自天地悠悠的个人博客 主要总结一下在eclipse中如何使用断言. (一)首先明确: java断言Assert是jdk1.4引入的. jvm 断言默认是关闭的. 断言是可以局部开启的,如:父类禁止 ...
- java的断言(assert)
概述 在C和C++语言中都有assert关键,表示断言.在Java中,同样也有assert关键字,表示断言,用法和含义都差不多.在Java中,assert关键字是从JAVA SE 1.4 引入的,为了 ...
- C# 断言 Assert
重构-断言 现象:某一段代码需要对程序状态做出某种假设 做法:以断言明确表现这种假设 动机: 常常有这种一段代码:只有某个条件为真是,该改名才能正常运行. 通常假设这样的假设并没有代码中明确表现出来, ...
- JavaScript之调试工具之断言assert
1.单点断言 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- 断言(assert)
断言(assert):用来调试.测试代码. 格式: assert 布尔表达式: 字符串 (如果布尔表达式为false时,这个字符串才会显示). 注意: assert默认是关闭的,使用时需要使用&quo ...
- java断言assert初步使用:断言开启、断言使用
1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”. 断言只适用复杂的调式过程. ...
随机推荐
- [The Annotated Transformer] Iterators
Iterators 对torchtext的batch实现的修改算法原理 Batching matters a ton for speed. We want to have very evenly di ...
- JavaWeb_(SSH论坛)_四、页面显示
基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 帖子表与回复表 ...
- EL表达式里面不能直接使用list.size()得到长度,
在jsp页面中不能通过${list.size}取列表长度, 而是 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre ...
- C++入门经典-例6.11-使用指针变量遍历二维数组
1:代码如下: // 6.11.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #inc ...
- vue中bus.$on事件被多次绑定
问题描述:只要页面没有强制刷新,存在组件切换,bus.$on方法会被多次绑定,造成事件多次触发 解决办法一:在每次调用方法前先解绑事件( bus.$off ),然后在重新绑定( bus.$on ) b ...
- MySQL学习笔记(cmd模式下的操作)
1.登入MySQL 1.1 登入MySQL 1.1.1命令如下: C:\Users\zjw>mysql -hlocalhost -uroot -p Enter password: ****** ...
- LeetCode 61. 旋转链表(Rotate List)
题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出 ...
- leetcode-easy-listnode-21 merge two sorted lists
mycode 一定要记得创建两个头哦,一个找路,一个找家 # Definition for singly-linked list. # class ListNode(object): # def __ ...
- leetcode 56区间合并
class Solution { public: static bool cmp(vector<int> a,vector<int> b){ ]<b[]; } vecto ...
- python之注释的分类
<1> 单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 # 我是注释,可以在里写一些功能说明之类的哦 print('hello world') < ...