软件构造 第七章第三节 断言和防御性编程
第七章第三节 断言和防御性编程
断言:在开发阶段的代码中嵌入,检验某些"假设"是否成立。若成立,表明程序运行正常,否则表明存在错误。
可用于检查:
内部不变量:
表示不变量:
控制流不变量
方法的前置条件
方法的后置条件
- 断言主要用于开发阶段,避免引入和帮助发现bug
- 实际运行阶段, 不再使用断言
- 软件发布阶段,禁用断言避免影响性能。
断言Correctness
错误/异常处理Robustness
Defensive Programming
对来自外部的数据源要仔细检查,例如:文件、网络数据、用户输入等
对每个函数的输入参数合法性要做仔细检查,并决定如何处理非法输入