2013-04-18 84 views
2

我能做到这一点的C#类库来处理的类库代码本身的执行过程中可能出现的异常?我在编写类库和异常处理方面是新手。请指教。C#类库异常处理

private void MethodName(String text) 
    { 
     try 
     { 
      .............. 
      .............. 
      .............. 
     } 
     catch (Exception ex) 
     { 
      throw new Exception(ex.Message.ToString()); 
     } 
    } 

我在谷歌搜索和计算器,但没有发现任何文章我是否允许处理异常的类库这种方式,或者如果它不是一个推荐的方式来做到这一点。但它的工作。可能是一个愚蠢的问题,但我有这个疑问。

谢谢。

+6

你为什么要捕捉异常,只是走了一遍扔呢?做一些有用的事情或不要抓住它。 –

+0

@Tim,可能有多个错误,比如说空指针异常,超范围异常,索引异常异常等,我不想处理它们并丢弃它们。所以想到了捕获一个常见的异常并将其投入到调用该方法的应用程序中。 –

+2

如果你这样编码,调用者很难对你调用的代码产生的任何异常做任何有意义的事情。这是你的意图吗? – supercat

回答

6

是的,你可以做到这一点,但一般你应该只捕获异常,如果你打算用它做什么 - 即吞下或增加价值(通过转化,包装或作记录)。

使用你的方法的例子,你应该如果text是零,你的方法需要一个值抛出异常。除此之外,你应该让异常冒泡给调用者处理,除非你打算对它做些什么,或者它是你打算压制的预期异常。

你也应该不会抛出一个新的异常,而不是只用throw关键字重新抛出当前异常:

catch (Exception ex) 
{ 
    //do something 

    throw; 
}