2012-01-02 14 views
1

私が投げるか、私には、次のような何かを行うことができるように、それに伴い、エラーコードを指定したい例外のいずれかの種類をキャッチ:通常のメッセージとともに指定されたエラーコードを返すように例外を拡張するにはどうすればよいですか?

Writeline(ex.Source + ex.Message + ex.Code); 

あなたは私の道を表示したり、何かを提案することができますか?

ありがとうございます。

+0

あなたはどんなクラスでもやっています。どのような例外クラスからでも派生し、プロパティとコンストラクタを追加します。 –

答えて

2

は、次の2つの選択肢があります。

1)あなたがあなた自身の例外をスローする場合は、例外クラスから継承し、ご希望のどんな特性を追加することができます。

2)例外のData辞書に名前と値のペアを追加できます。 MSDNのドキュメントから

、データに情報を追加するには:

try 
    { 
     // do something 
    } 
    catch (Exception e) 
    { 
     e.Data["ExtraInfo"] = "Information from NestedRoutine1."; 
     e.Data.Add("MoreExtraInfo", "More information from NestedRoutine1."); 
     throw e; 
    } 

をし、その情報を使用する:

 if (e.Data != null) 
     { 
      Console.WriteLine(" Extra details:"); 
      foreach (DictionaryEntry de in e.Data) 
       Console.WriteLine(" The key is '{0}' and the value is: {1}", de.Key, de.Value); 
     } 
1

Exceptionクラスを使用すると、必要な任意のカスタムデータ用のキー/値の辞書を定義しますExceptionインスタンスに格納する - Exception.Dataプロパティを参照してください。

関連する問題