Classifying Exceptions(中文)

王朝other·作者佚名  2007-08-22
窄屏简体版  字體: |||超大  

Classifying Exceptions

Author:Russell Gold

Translator:Leon·He

站在一定高度上看,一个系统检测异常的方法是非常有限的几种。而这其中又受限于异常的类型和即定的目标有关。我把异常分为三个类别。其实我已意识到了四种,但我不记得他们具体是什么了。

我使用的三种为:

程序逻辑错误

资源错误

用户错误

当程序检测到它获得不应该可能有的状态时,程序逻辑错误就会发生,比如说,读取了一个五个元素数组的第十个元素或者试图从一个空栈中退栈。它们通常会通过”assertions”被捕获并且趋向于使一部分程序不可用。像这种异常一般就是开发人员的事了,一般用户是无能为力的,除了停用发生了异常的功能并有向有关开发人员报告问题外。这就意味着了程序不必向用户区分这些异常,并且向用户显示的信息也只需要开发人员能看懂就可以了。(特别的,可以以”对不起!发生了系统错误!请与系统管理员联系!”作以标题)

资源异常发生于在程序运行过程中意外地失却对一些资源的控制上(比如说内存,磁盘空间,或者一个外设)。对于这类临时性的问题,用户是可以做些适当的努力。比如:他可以关闭其它运行的程序,清除些磁盘空间,插入网线等等。这就意味着显示给用户信息必须能被他所理解。同时,程序的功用可能在部分退化的情况下继续运行,因此需要在这些异常中判别哪些发生后资源已不再可用了。

用户异常发生于用户试图去操作那些程序并不支持的功能,而且通过用户界面也没有直接禁止。它也许并不应该引起一个异常。但却应该被程序所处理。程序也可以试图去猜测用户真正的操作意图。在这类问题中,使用异常来处理的最大的缺点就是检测多种错误很困难。

就我所知,所有的异常都应该属于这些类别当中的一个,还有人意识到我所忽略的其它类别吗?Tell me!

Leon·He

Broaden Gate(ShenZhen) Corp

E-Mail:English98@tom.com

i.am.a.peasant@gmail.com

Do things as right as possible.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航