相信很多做开发的朋友都听过"断言",但是却很少用过它
在java里面它长这样:
/**
* 断言的第一个例子
*/
public static void useAssertExt2() {
boolean isOk = 1 > 2;
try {
assert isOk : "程序错误";
System.out.println("程序正常");
} catch (AssertionError err) {
System.out.println(err.getMessage());
}
}
在C++里它长这样:
#include <iostream>
#include <cassert>
using namespace std;
int main() {
int i = 22;
assert(i != 22);
system("pause");
return 0;
}
关键字"assert"
它的作用就是当条件(如: i !=22)为false的时候退出程序.
用大白话来说就是"当一件你认为不可能发生的事情发生了就退出程序".这听起来好像是废话啊.因为按照逻辑不可能发生的事情怎么会发生呢?既然那件事不可能发生那我们还检测它干嘛?一点意义都没有啊.
关键点就在这里:不可能发生的事情,是"你认为"不可能的!
人的思维是有局限的,我们没有考虑到的事情多了去了.在写代码的时候我们只考虑常规的事件发生,也就是假设它的运行环境在我们预期的理想环境下运行,但是当我们把软件发布出去在真实的世界运行的时候,告诉你什么事情都可能发生!
就比如:你编程的时候觉得1+1=2这个等式绝对成立.但是你可能没考虑过老鼠咬线导致断路,然后引发系统紊乱,这个时候1+1=2就可能不成立了.虽然这种事件的概率很小但是它确实是有可能发生的.
这就是为啥要引进断言的缘故.