我正在编写一个服务层,它使用Entity框架从数据库中获取/设置数据,然后将其传递给MVC Web应用程序。我无法确定将数据库错误返回给Web应用程序的bext方法。
我应该抛出一个异常并且Web应用程序可以相应地处理它,还是应该返回一个字符串/ bool来表示数据库操作是否有效?
有关什么是最佳做法的任何建议?
由于
答案 0 :(得分: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;
}
}
只需将您需要的任何信息作为属性添加到异常类中,并在构造函数中初始化它们。
通过返回值通知更高级别的异常并不是最佳做法,因为大多数方法已经返回了一些数据。
答案 1 :(得分:1)
你不应该处理从Web应用程序抛出的异常,让异常自然抛出,即使是从数据访问层。通过这种方式,您可以轻松进行故障排除,尤其是在生产阶段。那么,如何处理: