阅读笔记 > 错误处理

错误处理已成为当代计算机科学中最棘手的问题,没有谁能担负起频繁应付它的负担。有人估计,程序中有 90%的代码是为了应付例外的错误处理或者内务处理而编写的,就是说仅有10%的代码才是处理正常情况的。既然有如此多的代码是用于错误处理,那么在结构中阐明处理错误的策略就是十分必要的了。以下是些需要考虑的问题:

错误处理需要考虑的问题
  • > 错误处理是纠正还是仅仅测试错误?如果是纠正错误,程序可以尝试从错误状态下恢复。如果仅仅是测试,那么程序可以继续运行,就像什么也没有发生一样,或者直接退出运行。但无论在哪种情况下,都应该提醒用户发现了错误。

  • > 错误测试是主动的还是被动的?系统可以积极地预防错误,如通过检验用户的输入是否合法,当然也可以消极地在无法回避它们时才做出反应。例如,用户的一系列输入产生了溢出,你可以清除,也可以滤除信息。同样,无论哪种方案,都要提醒用户。

  • > 程序是怎样对付错误的?一旦测试出错误,程序可以立刻抛弃产生错误的数据,也可以把它当作错误而进入错误处理状态,还可以等到全部处理完毕后再通知用户数据有误。

  • > 处理错误信息的约定是什么呢?如果结构设计中没有规定某种策略。那么用户界面在程序的不同部分就会像迷宫中的通道一样忽东忽西,让人摸不着头脑。为避免出现这类问题,结构设计中应建立一套处理错误信息的约定。

  • > 在程序中,应该在哪一个层次上处理错误呢?你可以在发现的地方立即处理,也可以把它交给一个错误处理子程序去处理,或者交给更高层次的子程序处理。

  • > 每一个模块检验输入数据合法性的责任级别有多高?是每一模块仅检验它自己的数据,还是由一级模块来检验整个系统的数据?是否每个层次上的模块都可以假定输入其中的数据是合法的?

摘自《代码大全》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值