ベストプラクティスとして、特定の方法で例外を処理するためにすべての実装を強制する方法について説明します。例えば、私はUIに次のインターフェイス特定の方法で動作するように抽象メソッドの実装を実施する方法
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");
}
}
を持っているのは、言わせてそれがすべて「InvalidOperationsを」ハンドル、バックユーザーにメッセージを表示します。ただし、データとエラーメッセージをラップするカスタムオブジェクトを作成する方法もあります。
public OperationObject Get(string appName){
var operationObject = new OperationObject();
if (somecondition == somecondition)
operationObject.ErrorMessage = "message";
else
operationObject.Data = MyDTO
}
編集:基本的には、すべてのプロバイダが操作が失敗した理由を提供する方法が必要です。
私はこのアプローチを実装しました。ブログの投稿に感謝します。 –