类库中的异常处理。有必要吗?

时间:2014-08-05 18:38:45

标签: asp.net exception-handling code-reuse

我有一个类库项目,我在asp.net Web表单项目中引用它。

每当发生任何异常时,我都想记录它。但是,我没有在任何类库方法中进行任何异常处理。那就是我没有在类库中的任何方法中使用try-cath块。

因为,任何从类库方法抛出的异常都会在我的表示层/业务层(无论我在何处调用类库的函数)中捕获,并且在Web表单项目中完成正确的日志记录。

这样做是否正确。?

2 个答案:

答案 0 :(得分:0)

可以这样编写,但在这种情况下,您的类库将抛出异常的系统异常消息,这可能有时很难解释并采取相应的行动。

相反,您可以在类库中使用Try-Catch-Finally块,并使用用户定义的消息将异常重新抛出到调用方法,这将有助于跟踪问题。

示例:

Catch(FileNotFoundException Ex)
{
  throw new ("File Not Found at XYZ Location, Please Check File Exist and retry ...")
}

集中式例外记录:

您可以通过多种方式记录错误消息。其中一个好方法是使用Enterprise Library Exception Block将错误记录到文件,这可用于调试问题。

本文对于企业库来说非常方便: http://msdn.microsoft.com/en-us/library/ff649140.aspx

您可以将异常集中记录到CSV,XML甚至Windows事件查看器。

创建单独的类/项目以执行项目中的所有异常日志记录。

答案 1 :(得分:0)

对我来说似乎是一种合理的方法。将异常日志记录委派给应用程序会使您的类库保持抽象,这意味着可以重用它而不依赖于日志库/框架。

记录应该是应用程序的责任,而不是组件。可能存在某些特殊情况需要在组件级别进行跟踪级调试,因为具有可以交换的已启用日志的lib版本的特殊情况可能会派上用场。但是,我认为经过适当测试的组件可以减少对此的需求。