现在的位置: 首页 > 综合 > 正文

我该不该吃了 异常 ?

2011年06月19日 ⁄ 综合 ⁄ 共 369字 ⁄ 字号 评论关闭

在编写自己的的dll时,总会用到其它人写的类库(至少你会用BCL吧)。那么免不了要面对别人扔出的异常。那么在我自己的dll的类中,应该怎么面对这些异常呢?

catch是一定的,但catch了之后呢,如果我自己能挽救回来当然也就没事儿,如果挽救不回来,我该把这个异常吃掉,转而扔出一个我自定义的异常呢?还是把原来的异常rethrow出去?

似乎选哪个都讲得通。

一、吃掉别人的异常,扔出自己的。 因为类库的实现细节应该对调用者透明,显然类库内部产生的异常就是属于实现细节,不应该暴露给调用者。

二、将原来的异常再扔出去。 因为将原来的异常消化掉,再扔出自定义的异常,会掩盖真正的出错源。好比当你通过代理调用远程对象的方法时,当远程对象扔出异常,而被代理截获后,统一扔出方法调用出错异常,恐怕你就永远也不能明白,到底是哪里出了错吧?

那么,我该怎么选择呢?

抱歉!评论已关闭.