黄聪

论SEO对人类的重要性,请看我的博客:hcsem.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

关于Exception处理没想到争论还不少,把我这些年来一直遵循的原则总结一下(大多数时候适用于WinForm的开发)

定律1  执行IO,数据库等外部操作的时候,必须以Try-Catch(-Finally)包装该操作,捕获可以预见的IOException,DBException等指定类型的Exception,并正确执行文件流的关闭,DB事务的回滚,DB连接的关闭等后续处理。除此之外的Exception一律无视(自动适用于定律2的处理范围)。

定律2  除了定律1所提到的场景,只在必须在UI层(多指画面控件的事件处理函数)以Try-Catch(-Finally)捕获Exception。捕获之后只做两件事:根据Exception类型给最终用户显示友好的提示信息,不必显示Exception的具体信息;Exception详细信息,特别是StackTrace,记录在Log中,以方便将来排错。

定律3  除了定律1定律2所提到的场景,代码的任何地方都不应该出现 Try,Catch, Throw等字眼;大多数情况下不需要使用自定义异常。

------------------------------------------------------

最高定律

定律0  如果觉得自己确实很NB,可以无视定律1,2,3,随心所欲。

------------------------------------------------------

文章地址:http://www.cnblogs.com/csliwei/archive/2010/12/14/3Rules-Exception.html

posted on 2010-12-15 14:53  黄聪  阅读(300)  评论(0编辑  收藏  举报