阅读笔记 > 错误处理

来源:互联网 发布:ip网络广播功放终端 编辑:程序博客网 时间:2024/06/09 20:19

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

错误处理需要考虑的问题

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

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

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

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

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

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

摘自《代码大全》
原创粉丝点击