防御式编程

本文深入探讨了防御式编程的核心概念及其重要性,通过实例阐述了如何在程序中实施防御策略,以减少错误和提高程序稳定性。重点强调了断言、错误处理、异常技术的应用,以及如何通过辅助调试代码和日志增强程序的健壮性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近在进行一个C/S模型程序集成测试时屡次出现程序崩溃而费时去寻找bug的问题。为此我和团队成员一起探讨了何谓”防御式编程“,为何要做”防御式编程“。

    何谓防御式编程,“防御式编程的中心思想是: 子程序不因传入错误数据而被破坏,哪怕是有其他程序产生的错误数据。”引自《代码大全》p187——(防御式编程)。说说我们写程序常有的误区,比如我们会假定某处一定存在我们要加载的文件;比如我们会假定客户端一定会传入服务端我们想要的数据格式;比如我们会假定对方提供的插件一定是符合主程序的规格;......但是一切不会如我们预期的这样理想,往往对程序造成的结果就是出现一些不知所云的bug,甚至出现程序崩溃。

    所以我们要进行防御式编程,当我们在进行接口或者子程序的编写需要和其他接口和程序进行数据交流时,请不要相信“他们”,我们应该对他们给我们的数据首先进行数据规则的判断,如果不符合我们的规则,我们可以拒绝他们,或者可以转换为合法的数据来保护自身。引用社会上的一句话,“在这个缺乏诚信的社会,保护自己的最好方法就是别轻信他人或者做好自己”。

    理解了防御式编程的思想,下面我们就要开始建立防线。在这道防线里我们可以使用断言技术来处理绝不应该发生的状况,用错误处理代码来处理预期会发生的状况,用异常技术来解决自己无法处理的状况,用隔离程序来保护自己,增加各种辅助调试的代码和日志,我们还可以采用积极进攻的策略来让“敌人”来***我们用来测试我们的防线然后稳固他。

    做到写出固若金汤的程序也不是一朝一夕的事,请你在写每一个子程序时都用最严格的策略保护他,谨慎的修补他,慢慢的你就会拥有一个无法攻破的城堡。

推荐阅读《代码大全》第8章——防御式编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值