次のようにカスタム例外を実装することの長所と短所は何ですか。
説明にエラーメッセージを表す列挙型を作成します。
public class Enums
{
public enum Errors
{
[Description("This is a test exception")]
TestError,
...
}
}
カスタム例外クラスを作成します。
public class CustomException : ApplicationException
{
protected Enums.Errors _customError;
public CustomException(Enums.Errors customError)
{
this._customError = customError;
}
public override string Message
{
get
{
return this._customError!= Enums.Errors.Base ? this.customError.GetDescription() : base.Message;
}
}
}
このGetDescription
メソッドは、リフレクションを使用して列挙型の説明を取得する列挙型拡張メソッドです。このようにして、次のような例外をスローできます。
throw new customException(enums.Errors.TestError);
そして、次のようなキャッチブロックでユーザーに表示します。
Console.WriteLn(ex.Message);
私はこのアプローチがMVPによって推奨されているのを見てきました。次の点に対するこのアプローチの利点は何ですか。
- 一般的な例外の使用:throw new Exception( "Error Message");。
- カスタム例外の使用:あらゆる状況でカスタム例外を定義します。例(
WebServiceException
クラス、AuthenticationException
クラスなど)
MVPによる推奨へ のリンクは次のとおりです。
ありがとうございました。