2

EpicFailExceptionのサブクラスとしてクラスを作成するコードを作成しようとしていますApplicationExceptionHelpLinkプロパティをgoogle.comにデフォルト設定するコンストラクタを追加する必要があります。以下は私がこれまでに持っているものです。サブクラスの適用方法に関する提案はありますか?

 public class ApplicationException : Exception
 {
     public ApplicationException(string auxMessage, Exception inner) :
         base()
     {
         this.HelpLink = "http://google.com";
     }
 }
4

2 に答える 2

1

.NET クラスの設計ガイドラインが変更されました。現在の推奨事項は、からではなく、から派生することExceptionApplicationExceptionです。

つまりHelpLink、多くの派生例外でプロパティを設定する必要がある場合は、HelpLinkプロパティの値をパラメーターとして要求する基本クラスを作成し、そこから派生させることができます。

public abstract MyExceptionBase : Exception
{
    protected MyExceptionBase(string message, string helpLink) : 
        base(message)
    {
        HelpLink = helpLink;
    }
}

public MyException : MyExceptionBase
{
    public MyException(string message) : 
        base(message, "http://www.google.com")
    { }
}

シリアル化、パラメーターなしのコンストラクターなど、カスタム例外に関する他のすべてのガイドラインに従う必要があることに注意してください。

于 2011-05-01T21:58:35.497 に答える
0

質問を受け取ったかどうかはわかりませんが、探しているかもしれません

base(auxMessage,inner)

ただの代わりに

base()
于 2011-05-01T21:56:02.393 に答える