次のコード スニペットを検討してください。
foreach (var setting in RequiredSettings)
{
try
{
if (!BankSettings.Contains(setting))
{
throw new Exception("Setting " + setting + " is required.");
}
}
catch (Exception e)
{
catExceptions.Add(e);
}
}
}
if (catExceptions.Any())
{
throw new AggregateException(catExceptions);
}
}
catch (Exception e)
{
BankSettingExceptions.Add(e);
}
if (BankSettingExceptions.Any())
{
throw new AggregateException(BankSettingExceptions);
}
catExceptions は、私が追加する例外のリストです。ループが完了したら、そのリストを取得して AggregateException に追加し、それをスローします。デバッガーを実行すると、「Setting X is required」という文字列メッセージがそれぞれ catExceptions コレクションに表示されます。ただし、AggregateException になると、メッセージは「1 つ以上のエラーが発生しました」だけになりました。
個々のメッセージを保持しながら集約できる方法はありますか?
ありがとう!