簡體   English   中英

存儲庫應該引發自定義異常還是返回狀態類型?

[英]Should a repository throw custom exceptions or return a status type?

我有一個Web應用程序和一個將交易記錄設置為“完成”的存儲庫。 要求是在存儲庫級別檢查該要求是否已被另一個用戶設置為“完成”,如果是,則通知當前用戶該記錄已被設置為“完成”。

我應該拋出自定義異常還是返回狀態類(帶有狀態枚舉和消息集合)?

存儲庫的調用者(一種服務)處理存儲庫調用,並將結果包裝到DTO到UI ...

拋出異常並捕獲它並不是更好的做法,因為無論何時發生異常,在處理異常之前,它都會為.Net框架添加一些額外的工作,以收集所有信息,例如Stacktrace,源和許多其他信息。

而是具有一個響應RepositoryResponse類,如下所示,您可以填寫詳細信息並將其返回以在其他層中進行處理。

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

    public string ErrorMessage { get; set; }
}

我只返回一個枚舉,因為為什么要拋出異常?
沒有錯誤出現,所以不需要拋出異常恕我直言

這是一個關於雲的示例:

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

   try
   {
       return myenum.Done;
   }
   catch(ex)
   {
       return myenum.ERROR;
   }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM