软件构造学习笔记-第十三周

本周内容较少,主要介绍了断言以及防御式编程。断言一般用于程序开发阶段,用以快速发现错误,而在程序正式版本中则较少使用断言。一般来说,程序员使用(输入)的数据可以使用断言检测合法性,而用户输入数据则采用异常的机制处理。防御式编程可以提高程序的健壮性,然而也要避免“过度防御”带来的程序性能下降的负面影响。

断言

1.断言用以保证程序正确性;异常用以保证程序健壮性。
2.断言只是检查程序的内部状态是否符合规约(检查程序员自己的错误),一旦出现false程序就停止。但是代码无法保证不出现外部错误,处理外部错误需要使用异常。
3.断言非常影响程序性能,正式版本的程序一般不应出现断言。
4.使用异常处理“预料到可以发生的”不正常情况;使用断言处理“绝不该发生”的情况。
5.一般,前置条件使用异常检测,后置条件使用断言检测。
如果参数来自于外部,不受自己控制(比如public方法),使用异常;如果来自于内部(比如private方法),使用断言。
6.断言和异常都可以处理同样的错误。

防御式编程的措施

1.防止错误输入
-错误输入,无输出
-错误输入,提示错误信息
-不允许错误输入
2.设置路障
使用特定的类过滤错误输入。public方法收到的外部数据都应被处理后再传入private方法。类似于代理模式。

有关Debug

1.debug是测试的后续步骤,测试发现问题,debug消除问题。
2.debug的过程:重现->诊断->修复->反思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值