防御式编程

防御式编程

  • 防御式编程(Defensive Programming)是提高软件质量的辅助手段 怎么理解呢?防御式编程思想的理解可以参考防御式驾驶:
    在这里插入图片描述
  • 在防御式驾驶中要建立这样一种思维,那就是你水远也不能确定另一位司机将要 做什么。这样才能确保在其他人做出危险动作时你也不会受到伤害。你要承担起 保护自己的责任,哪怕是其他司机犯的错误。

核心思想:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的 错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。

具体措施

  1. 对输入进行体检
    (1)检查输入源(如:文件,网络、控制台等)数据的合法性
    (2)检查每一个函数输入参数的合法性
    处理方式:一旦非法输入被发现,那么应该根据情况进行处理。防御式编程的最佳的形 式是在一开始就不引入错误。

  2. 对非预期错误使用断言
    (1)空指针。
    (2)输入或者输出参数的值不在预期范围内。
    (3)数组的越界。
    处理方式:如果断言的条件返回错误,则终止程序执行。

断言的原型定义:

 #include <assert.h> 
 void assert( int expression );

 assert 的作用是先计算表达式 expression ,如果其值为假(即为 0),
 那么它先 向 stderr 打印一条出错信息, 然后通过调用 abort 来终止程序运行。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值