我有一个带有 DAL 和服务层(WCF Rest)的应用程序。我在使用 IErrorHandler
时在服务层出现错误。
在 DAL 层中,我在所有方法中使用 try catch,并将错误记录到 catch 中的文本文件中。之后我使用 throw 来抛出错误。
我的DAL层方法如下
public DataTable Method1()
{
DataSet dsData = null;
try
{
//code to get the data
}
catch (Exception ex)
{
dbManager.WriteErrorLog(module, MethodBase.GetCurrentMethod().Name, ex.Message);
throw;
}
return dsData.Tables[0];
}
在 catch 中,我使用了一个名为 WriteErrorLog
的通用方法将异常写入文本文件。
我的困惑是我们已经在服务层处理了错误。那么我可以避免在我的 DAL 中使用 try .. catch 吗?或者现有的是 DAL 的良好实践?
最佳答案
好吧,您并没有真正处理异常,因为您将其重新抛出并冒泡到服务层,如果您想记录数据访问层中发生的异常,这正是您想要做的。
因此,您正在做的正是需要做的事情,这确实是一个很好的做法:
- 记录错误
- 不在应用系统的底层处理异常
- 让前端/消费应用程序处理异常和/或错误
关于c# - 在 DAL 或服务层记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519608/