0
作爲最佳實踐,如何執行所有實現以特定方式處理異常。例如,假設我有以下界面如何執行抽象以實現某種特定方式
public interface IApplicationProvider<TData> : IDisposable{
TData Get(string appName);
}
public abstract ApplicationProviderBase<MyDTO> {
public abstract MyDTO Get(string appName);
}
public class SomeApplicationProvider: ApplicationProviderBase {
public MyDTO Get(string appName){
...
if (somecondition == somecondition)
throw new InvalidOperation("Application could not be fetched due to a custom error");
}
}
在UI中它將處理所有「InvalidOperations」並將消息顯示回給用戶。但是,另一種方法是創建一個將包裝數據和任何錯誤消息的自定義對象。
public OperationObject Get(string appName){
var operationObject = new OperationObject();
if (somecondition == somecondition)
operationObject.ErrorMessage = "message";
else
operationObject.Data = MyDTO
}
編輯:基本上我想要一種方式讓所有提供者提供操作失敗的原因。
我已經實現了這種方法,並感謝博客文章。 –