smhy8187

 

异常处理讨论

http://community.csdn.net/Expert/topic/5557/5557952.xml?temp=.3380548


1、异常是一种程序自我保护的措施,除非有下列情况之一,否则不应捕获异常。
1.1、确定一定以及肯定执行的代码在正常情况下可能会出现某个异常,并且而且一定你知道你在干什么,你才可以处理这个异常。如网络通信的时候,连接忽然断开的异常,捕获这个异常并且重新连接。
1.2、确定你的代码在正常情况下可能会出现某个异常,并且这个异常所描述的信息不够详细。可以捕获这个异常,并使用更加适合的自定义异常类抛出,并且一定要将源异常放在InnerException中。如图片加载时,图片格式错误会出现内存溢出的异常,你可以用图片格式错误的异常代替。
1.3、当你需要对程序中所有出现的异常进行记录时,捕获异常,记录,并使用没有参数的throw;语句将源异常抛出。

2、异常本来就带有调用堆栈信息,不论在什么地方发现异常都能找到异常源。

3、捕获异常而不做正确的处理是编程的大忌,这样的代码写出来就是隐患。所以当你不打算把异常抛出时,问自己三次,是不是能处理所有的情况?否则你就该抛出去让别人处理。

4、轻易不要将异常另外包装,非要要包装时,一定要将源异常放在InnerException中。否则异常信息就丢了。不要胡乱包装异常。

5、尽量不要对异常进行任何破坏性的工作,这是非常危险的,对于初学者,建议你尽量避免抛出异常,例如使用TryParse而不是Parse,而不是去处理异常。

posted on 2007-07-17 15:49  new2008  阅读(127)  评论(0编辑  收藏  举报

导航