Defensive programming -- Code complete reading notes(8)

子程序不应该因传入错误的数据而被破坏,哪怕是由其它子程序产生的错误数据。
1、检查所有来源于外部的数据
2、检查子程序所有输入参数的值
3、决定如何处理错误的输入数据

使用断言
1、用错误处理代码来处理预期会发生的错误,使用断言来处理绝不会发生的状况
2、避免把需要执行的代码放在断言中
3、用断言来注释并验证前条件和后条作
4、应该先使用断言再处理错误

错误处理技术
1、返回中立值
2、换用下一个正确的数据
3、返回与前次相同的数据
4、换用最接近的合法值
5、记日志
6、返回一个错误码
7、调用错误处理子程序或对象
8、显示出错消息
9、在局部处理数据
10、关闭程序

错误处理方式有时更侧重于正确性,有时则更侧重于健壮性

应该在恰当的抽象层次抛出异常,确保异常的抽象层次与子程序接口的抽象层次一致,不应把更低层的异常传递给其调用方,暴露了一些实现细节。

posted @ 2006-05-19 22:53 Lyn 阅读(294) 评论(1)  编辑 收藏 所属分类: Reading notes

  回复  引用  查看    
#1楼 2006-07-25 17:03 | 思无邪      
什么时候用异常,什么时候用错误码呢?还有想Is**之类的检测?

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: