防御式编程没有特定的方法,是一种思想,就是考虑周全数据可能会出错的各种情况,然后提前做控制,以免破坏到后面的数据,
子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的 错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。
检查输入源(如:文件,网络、控制台等)数据的合法性
检查每一个函数输入参数的合法性
一旦非法输入被发现,那么应该根据情况进行处理。防御式编程的最佳的形式是在一开始就不引入错误。
头文件:#include <assert.h>
assert 的作用是先计算表达式 expression ,如果其值为假(即为 0),
那么它先 向 stderr 打印一条出错信息,
然后通过调用 abort 来终止程序运行。
当有错误的时候assert(判断语句)//如果程序执行到这里,所输入的内容满足判断语句的条件,那程序就会强行终端
例如:写了文件就需要判断文件是否操作成功,
打开文件就需要,关闭文件
?申请了内存空间,就需要释放内存空间
int *p = NULL;
p = new int[12];//按需申请堆空间
delete[] p;//使用完后释放该空间