黄聪:.NET开发中的Exception处理三定律[转]

关于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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值