防御式编程
来源:互联网 发布:大型企业网络建设方案 编辑:程序博客网 时间:2024/05/25 21:33
防御编程的核心思想是: 子程序应该不因传入的错误数据而被破坏,哪怕由其他子程序产生的错误数据。更确切的说,必须承认程序会有问题,都需要被修改。
防御编程的最佳方式: 一开始不要再代码中引入错误,使用迭代式设计、编码前先写伪代码、写代码前先写测试用例、底层设计检查等。
一、保护程序免遭非法数据破坏
1、检查所有来源于外部的数据的值。
2、检查子程序的所有输入参数的值。
3、决定 如何处理错误的输入数据。
二 、断言的使用
1、断言主要用于开发和维护阶段。通常,断言只是在开发阶段被编译到目标程序中,而在生成产品编码时并不会编译进去。
2、用错误处理码来处理预期会发生的情况,用断言处理绝不应该发生的情况。断言可以作为可执行程序的注释
3、不要将执行代码放入断言中,当关闭断言功能时,执行功能可能失效。
4、变量数值都来源于系统外部,应该用错误处理代码来检查和处理非法数值,而不是用断言。而变量是源于可信系统的内部,而且程序执行的结果不会超出合法的假定范围值,则断言更加合适。
三、隔离程序
以防御编程为目的而进行隔离的一种方法,是把某些接口选定为安全的区域边界,对穿越安全区域边界的数据进行合法性校验。
可以让某些类处理“不干净”的数据,而让另一部分处理“干净”的数据,即可让程序中的大部分代码无需担负检查错误数据的职责。
在输入数据时将其转化为恰当的类型,输入的数据通常是字符串或者数字的形式,
这些数据可以被映射为 布尔类型的 true/fasle
有些被映射为枚举类型
这样可以减少 程序处理数据的复杂度和崩溃的可能性。
0 0
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程
- 防御式编程小结
- 防御式编程
- 防御式编程思考
- 防御式编程
- 防御式编程
- 3-防御式编程
- 防御式编程
- cc-8-防御式编程
- 防御式编程(一)
- .NET ConfigurationManager类正确引用方法
- 简谈【自动化协议逆向工程技术的当前趋势】
- 基于canal实现mysql、oracle的数据库实时同步
- 工作感想(二)
- Java类、继承、多态等零散知识点
- 防御式编程
- SQL2008无法启动,报错"17051"怎么解决
- 基础知识!ASP.Net内置对象 7个
- Lua嵌入iOS/Mac工程
- 【视频】多UE调度以及MCS动态调整的考虑
- UVA11400 简单DP
- 【LeetCode 506】Relative Ranks(Top K Problem)
- python:使用http请求实现phpwind自动登录及发帖
- 基础知识!ASP.NET修饰符