防御式编程
防御式编程(Defensive Programming) )是提高软件质量的辅助手段
核心思想: :子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的
错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。
具体措施:
1. 对输入进行体检 对输入进行体检
(1)检查输入源(如:文件,网络、控制台等)数据的合法性
(2)检查每一个函数输入参数的合法性
处理方式 :一旦非法输入被发现,那么应该根据情况进行处理。防御式编程的最佳的形
式是在一开始就不引入错误。
2. 对非预期错误使用断言 对非预期错误使用断言
(1)空指针。
(2)输入或者输出参数的值不在预期范围内。
(3)数组的越界。
处理方式:如果断言的条件返回错误,则终止程序执行。
原型定义:
#include <assert.h>
void assert( int expression );
assert 的作用是先计算表达式 expression ,如果其值为假(即为 0),那么它先
向 stderr 打印一条出错信息,
然后通过调用 abort 来终止程序运行。
eg:
assert(0<r&&r<N-1)//如果不满足括号中的条件,则报错。

浙公网安备 33010602011771号