利用.NET的异常处理面对非同寻常的挑战

ZDNet软件频道 时间:2005-03-16 作者:builder |  我要评论()
本文关键词:
发挥.NET的结构化异常处理系统的最大功效。本文所介绍的10点最佳实践技巧将保证你不会再因为程序陷入停滞而紧张。

发挥.NET的结构化异常处理系统的最大功效。本文所介绍的10点最佳实践技巧将保证你不会再因为程序陷入停滞而紧张。

如果合理利用.NET的结构化异常处理系统,将使你的程序拥有高效、整洁而又谨慎的异常处理能力。但如果使用不当,同样的系统又可以令你因为程序陷入停滞而不胜其烦。所以,为了让所有人都能遵循正确而严谨的方法,我将在下文中介绍10点异常处理的技巧。

1、使用一条try语句和多个catch语句

当你在程序中加入异常处理代码时,最好将所有可能抛出异常的语句都放在同一个try语句块中,同时部署多个catch语句块用以捕获可能会出现的异常。将所有的catch语句放在中间的位置可以增加代码的可读性。

2、将catch语句块按照从特殊到一般的顺序排列

当在代码中加入用以捕获不同类型异常的catch语句块时,始终将它们按照从最特殊到最一般的顺序排列,这样做不仅可以在处理一般异常之前优先处理特殊类型的异常,而且还可以帮助其他的开发人员读懂你的代码,弄清楚有哪些操作正在进行。

3、始终确保达到了有效状态

异常处理的最小化原则是要确保你所使用的对象在出现异常之后返回到一个有效状态,并且确保调用者所使用的方法调用中的异常处理不会带来副作用,所以,进行所有必须的清除操作以确保在最后一个语句块中达到这一有效状态。

4、将可能抛出的异常记载到文档中

Java的开发者必须声明他们所编写的每一个可能会抛出异常的方法,并且要明确列出调用者可能会遇到的这些异常。对于一些开发者而言,这样做看上去有些麻烦,但如果能预先知道所调用的方法中会遇到那些异常,可以让你准备一个专门的计划以应对这些异常;这比依靠一个通用的“捕获所有异常”的语句块要更可靠。所以,经常将你所创建的类或方法中可能会抛出的异常记载到文档中。

5、抛出最贴切的错误信息

在很多情况下,可能有多种异常信息可以代表同一个错误,你的程序应当总是将最符合错误条件的异常类型抛出。例如,如果出现除以零的错误,数学异常(Arithmetic Exception)或者除零异常(Divide By Zero)都适用这一情况,而你的程序应该抛出除零异常(Divide By Zero)而并非前者。这里主要的观念是在给定的错误条件下,将最精确的信息传递给你用于捕获异常的代码。

6、永远不要在常规使用中抛出异常

记住,在程序设计中使用的术语“异常”表示了这样一种思想,那就是一个异常是用来表示一种非同寻常的状况。正如他们的本性所决定的那样,异常状况并不会经常发生,所以你的代码不应该将抛出异常当作日常操作的一部分。

 


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134