我可以在c#类库中执行此操作来处理在执行类库代码本身时可能发生的异常吗?我是编写类库和异常处理的新手。请指教。
private void MethodName(String text)
{
try
{
..............
..............
..............
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString());
}
}
我在google和stackoverflow中搜索过,但是没有找到任何文章是否允许我以这种方式处理类库中的异常,或者是否不建议这样做。但它的确有效。可能是一个愚蠢的问题,但我有这个疑问。
感谢。
答案 0 :(得分:7)
是的,你可以这样做,但一般情况下你应该只捕获异常,如果你要对它做一些事情 - 即吞下它或给它增值(通过变换,包装或记录它)。
使用您的示例方法,如果text
为null且您的方法需要一个值,则应抛出异常。除此之外,你应该让异常冒出来让调用者处理,除非你打算对它做一些事情,否则你打算压制它。
你也不应该抛出一个新的异常,而只是使用throw关键字来重新抛出当前的异常:
catch (Exception ex)
{
//do something
throw;
}