0

我正在编写一个服务层,它使用实体框架从数据库中获取/设置数据,然后将其传递给 MVC Web 应用程序。我无法决定将数据库错误返回到 Web 应用程序的最佳方法是什么。

我应该抛出异常并且 Web 应用程序可以相应地处理它,还是应该返回一个字符串/布尔值来传达数据库操作是否有效?

关于最佳实践的任何建议?

谢谢

4

2 回答 2

1

您可以不在服务层中处理它们,也可以使用您将创建的异常类对它们进行规范化。例如:

public class DatabaseException: Exception
{
    public string TableName { get; private set; }

    public DatabaseException(string tableName, Exception innerException)
        :base("There a database error occured.", innerException)
    {
        TableName = tableName;
    }
}

只需将所需的任何信息作为属性添加到异常类并在构造函数中初始化它们。

用返回值通知更高级别的异常并不是最佳实践,因为大多数方法已经返回了一些数据。

于 2012-08-02T17:17:19.157 回答
1

不应该处理从 Web 应用程序抛出的异常,让异常自然抛出,即使是从数据访问层。通过这种方式,您可以轻松进行故障排除,尤其是在生产阶段。那么,如何处理:

  1. 对抛出的异常使用自定义错误页面。
  2. 使用 HttpModule 记录异常以进行故障排除。登录模块ELMAH与 ASP.NET MVC 完美配合,并允许您在 Web 上查看日志。
于 2012-08-03T17:17:21.233 回答