2004年01月11日
川俣晶の縁側ソフトウェア技術雑記total 16263 count

C#で自作例外クラスを作成する場合のテンプレート

Written By: 川俣 晶連絡先

 C#で自作の例外クラスを作成する場合には、System.Exceptionクラスを継承しますが、その際、いくつかあるコンストラクタと同等の引数を持つコンストラクタを用意しなければなりません。

 これらを全ていちいち書くのはかったるいので、過去に書いたソースから引っ張ってきてクラス名を入れ替えたりするわけですが。過去のソースのどのあたりかも、時間が経過すると忘れてしまいます。

 というわけで、テンプレートを作っておくことにしました。

 これを、オータムマガジンにメモっておけば、他にも便利に使える人がいるかもしれない、という理由でここに書いておきます。

C#で自作例外クラスを作成する場合のテンプレート §

 myTemplateExceptionを自作例外名に書き直して使います。

class myTemplateException : ApplicationException

{

    public myTemplateException()

    {

    }

    public myTemplateException( string message ) : base(message)

    {

    }

    protected myTemplateException( System.Runtime.Serialization.SerializationInfo info,

        System.Runtime.Serialization.StreamingContext context )

        : base( info, context )

    {

    }

    public myTemplateException( string message, Exception innerException )

        : base( message, innerException )

    {

    }

}

 ちなみに、System.Runtime.Serialization.SerializationInfoと、System.Runtime.Serialization.StreamingContextは、これらの名前空間をusingで指定しないことも多いだろうということで、完全な名前で書いてあります。これらのクラスは、Mscorlib.dllに含まれるので、特に標準ではないアセンブリの参照を追加する必要はありません。

 それからアプリケーション側の例外ということで、Exceptionクラスではなく、ApplicationExceptionクラスから継承しています。アプリケーション側の例外は、Exceptionクラスではなく、ApplicationExceptionクラスから継承するのが正しいやり方です。なんだか過去にExceptionクラスを継承するサンプルソースをいくつも書いているような気がするけど (汗)

 気にする人がいるといけないので念のため書いておきますが、著作権などは主張しません。主張するようなものではないと思いますので、必要な人は自由に使って下さい。

VB.NET版について §

 Visual Basic.NET版も、いずれ作りたいと思います。

 Viusal Basic.NETプログラマを応援する熱血ライターを名乗ってしまった以上は、避けられない道ですね。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20040111165808
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.