假設我建立一個ASP.NET Web API應用程序,它具有以下結構:投擲或不扔從由ASP.NET的Web API層所消耗的方法異常
由於您可以從圖中看到,ASP.NET Web API核心將與域服務層(例如MembershipService
類,其具有諸如GetUsers
,CreateUser
等的方法)進行對話,並且我的服務類將與一個或多個存儲庫進行通信以處理操作。
很明顯,服務操作(如MembershipService.CreateUser
方法)會由於多種原因(未滿足的條件,存儲庫拋出的異常等)而失敗,這是我懷疑的地方。
你認爲服務類應該處理異常,並返回某種結果對象,如下面的一個:
public class OperationResult {
public OperationResult(bool isSuccess) : this(isSuccess) {
IsSuccess = isSuccess;
}
public OperationResult(bool isSuccess, Exception exception) : this(isSuccess) {
Exception = exception;
}
public bool IsSuccess { get; private set; }
public Exception IsSuccess { get; private set; }
}
public class OperationResult<TEntity> : OperationResult {
public OperationResult(bool isSuccess)
: base(isSuccess) { }
public OperationResult(bool isSuccess, Exception exception)
: base(isSuccess, exception) { }
public TEntity Entity { get; set; }
}
或者你認爲該服務方法不應該抽象異常這樣的,應該直接或間接拋出異常(創建一個特定於操作的新的有意義的異常類型,並將拋出的異常作爲其內部異常)?
誰想關閉這個問題,因爲沒有建設性?請告訴我你用什麼來獲得高的利茲,據我所知,它正在發揮作用。 – tugberk