c# - 在 DAL 或服务层记录错误

标签 c# wcf exception layer

我有一个带有 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 的良好实践?

最佳答案

好吧,您并没有真正处理异常,因为您将其重新抛出并冒泡到服务层,如果您想记录数据访问层中发生的异常,这正是您想要做的。

因此,您正在做的正是需要做的事情,这确实是一个很好的做法:

  1. 记录错误
  2. 不在应用系统的底层处理异常
  3. 让前端/消费应用程序处理异常和/或错误

关于c# - 在 DAL 或服务层记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519608/

相关文章:

c# - 如何停止 System.Threading.Timer

java - 安装 Hadoop、Java 关于索引 7 处非法字符的异常?

java - 想要检索给定 WebElement 的 Xpath

C# SQL 查询在 SSMS 中有效,但在 C# 中无效

c# - 我可以依靠 GetHashCode() 的值保持一致吗?

c# - 使用 netMsmqBinding 与 IIS 托管绑定(bind)时,WCF 服务托管失败

c# - WCF、NetTcpBinding、Streamed 传输模式可以双工吗?

asp.net - wcf:将用户名添加到消息 header 安全吗?

C# 异常包含事件详细信息

c++ - "noexcept"与 "Throws: nothing"