我有一个网络应用程序和一个将交易记录设置为“完成”的存储库。要求是在存储库级别检查是否已将其他用户设置为“已完成”,此时,通知当前用户该记录已设置为“已完成”。
我应该抛出自定义异常还是返回状态类(状态枚举和消息收集)?
存储库的调用者(服务类型)处理存储库调用并将结果包装到DTO到UI ...
答案 0 :(得分:1)
抛出一个异常并捕获它并不是一个更好的做法,因为每当发生异常时,在处理它之前,它会为.Net框架添加一些额外的工作来收集所有信息,如Stacktrace,source和许多其他信息。
而是有一个响应RepositoryResponse类,如下所示,您可以填写详细信息并将其返回到另一层中处理。
class RepositoryResponse
{
public bool IsSuccess { get; set; }
public string ErrorMessage { get; set; }
}
答案 1 :(得分:0)
我只会返回一个enum因为你为什么要抛出异常呢? 没有出现错误,所以不需要抛出异常恕我直言
这里是云的样子:
public myenum RepositoryMethod()
{
if(alreadyDone())
return myenum.AlreadyDone;
try
{
return myenum.Done;
}
catch(ex)
{
return myenum.ERROR;
}
}