防御式编程

错误处理技术

 

返回中立值

处理错误的最佳做法就是继续执行操作并简单的返回一个没有危害的数值。

 

换用下一个正确的数据

在处理数据流的时候,有时只需返回一个正确的数据即可。

 

返回与前次相同的数据

数据改变较小的数据。

 

使用最接近的合法值

比如倒车时,速度不会显示为负,而是显示为0

 

把警告信息保存到日志文件中

 

返回一个错误码

重点是决定哪些地方应该直接处理,哪些地方返回错误码,给出报告。如果安全性很重要,要确认调用方的子程序总会检查返回的错误码。

1:设置状态变量的值

2:返回状态变量的值

3:抛出一个异常

 

调用用来处理错误的子程序或对象:

把错误处理都集中到一段子程序或者对象中,代价是需要让所有开发者均需要采用这一子程序,并且发生了耦合。

 

用最恰当的方式在局部处理错误:

 

关闭程序:

适用于与人身安全攸关的程序。

 

异常

 

在恰当的抽象层次抛出异常

当决定把一个异常传给调用方时,请确保子程序的抽象层次与异常的抽象层次相同。避免代码耦合,破坏封装性。

 

把项目中对异常的使用标准化

可以建立项目的特定异常类,它可用作所有可能抛出的异常的基类,这样就可以把日志记录报告出来,并标准化。

 

考虑异常的替换方案

仅仅因为编程语言提供了异常处理机制而使用异常,是典型的“为用而用”,这也是典型的“在一种语言上去编程”,而不是“深入一种语言去编程”。

 

在异常信息中加入有关异常的全部信息,避免使用空的catch语句。

 

了解使用的函数库所抛出的异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值