2013-06-25 5 views
18

私は文字列のリストを構築していますが、例外をスローしてUIにリストを処理させ、そのエラーメッセージを作成させます。オブジェクト(リスト<string>)を例外の一部として渡します

これを行う方法はありますか?

+3

'UIがlist'を解析してみましょう - なぜUIはその責任がありますか? –

+2

@HighCore:私は彼がメッセージボックスのために読めるものにリストを書式化することを意味すると思う。 – Cemafor

答えて

31

例外には、Dataプロパティ(辞書)が含まれています。追加の情報を渡すために使用することができます。

あなたが任意のデータを渡すために Exception.Dataプロパティを使用することができますが、より良い(クリーナー)ソリューションは、Exceptionから派生し、独自のカスタム例外クラスを作成し、どのような性質にあなたを追加することです
try 
{ 
    // throw new Exception 
} 
catch(Exception e) 
{ 
    // whatever 
    e.Data["SomeData"] = new List<string>(); 
} 
+3

+1私には面白い - 私はこのプロパティについて知らなかった –

+1

ありがとう! – Pacman

26

それが必要です。

サンプルコード:

public class MyException: Exception 
{ 
    public List<String> MyStrings { get; private set; } 

    public MyException(List<String> myStrings) 
    { 
     this.MyStrings = myStrings; 
    } 
} 
+4

私は強大なタイピングが好きなので、私はサブクラスの考えが好きです。 – Paul

+2

強い型指定は良いですが、大きな利点は、(カスケードcatchステートメントを使用して)例外を処理しようとすると、よりきれいで明解なコードです –

+2

ええと、強力な[er]入力:D – Paul

関連する問題