Exception Handling

关于exception handling的一些注意点。

1、  实现一个.Net library时的exceptionhandling。由于.Net已经基本上抛弃了传统的return code方式进行错误报告,所以我们现在实现一个.Net上的library时,也应该使用与其相一致的错误报告方式。这里有一个问题比较棘手:在实现一个method时,难免要调用多个其他的第三方.Netlibraries里的methods,而这些第三方methods可能会throw各自不同的exceptions;另外,同一type的exception可能从不同的methods中被抛出(即有不同的原因),那么,我们的method应该怎么处理这些exceptions呢?如果把这些来自第三方的exceptions不加处理、直接任由它们传递到最终的caller,则caller会得到许多莫名其妙的exceptions而不知如何正确处理;另外一个问题是最终caller需要处理所有可能类型的exceptions,显然最终caller的任务太重了。我们最好能对这些第三方抛出的exceptions进行捕获、处理(如果合适)、分类综合、re-throw等。

2、  区分applicationexceptions和system exceptions。尽管两者在机制上几乎没有区别,但是区分这两种exceptions在很多情况下是方便的。Applicationexceptions是一种违背contract的error(所以也可以叫做contract exceptions),责任在developers;而systemexceptions很多情况下是不可预料的或者无法控制的,如OutOfMemoryException、StackOverflowException等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值