0

我有一个网络应用程序和一个将交易记录设置为“完成”的存储库。要求是在存储库级别检查该要求是否已被另一个用户设置为“完成”,如果是,请通知当前用户记录已被设置为“完成”。

我应该抛出一个自定义异常还是返回一个状态类(带有状态枚举和消息集合)?

存储库的调用者(一种服务)处理存储库调用并将结果包装到 DTO 到 UI ...

4

2 回答 2

1

抛出异常并捕获它并不是一个更好的做法,因为无论何时发生异常,在处理它之前,它都会为 .Net 框架添加一些额外的工作来收集所有信息,如 Stacktrace、源和许多其他信息。

相反,有一个响应 RepositoryResponse 类,如下所示,您可以填写详细信息并将其返回以在不同的层中处理。

class RepositoryResponse
{
    public bool IsSuccess { get; set; }

    public string ErrorMessage { get; set; }
}
于 2014-07-03T06:45:00.113 回答
0

我会简单地返回一个枚举,因为你为什么要抛出异常?
没有出现错误,因此无需抛出异常恕我直言

这是云的样子的示例:

public myenum RepositoryMethod()
{
   if(alreadyDone())
     return myenum.AlreadyDone;

   try
   {
       return myenum.Done;
   }
   catch(ex)
   {
       return myenum.ERROR;
   }
} 
于 2014-07-03T07:11:35.097 回答