考慮下面的代碼片段:總結例外不保存單個異常消息
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然後拋出它。當我運行調試器時,catExceptions集合中會出現每個字符串消息「需要設置X」。但是,當涉及到AggregateException時,現在唯一的消息是「發生了一個或多個錯誤」。
有沒有一種方法可以在保持單個消息的同時進行聚合?
謝謝!
+1有許多方法可以將消息放在一起。或許,如果你在對話中報道這一點,LINQ可能會更有意義。 – JDB
@ Cyborgx37當然 - 我只是這樣做,以顯示它們在哪裏......不以任何方式暗示它是最好的選擇;) –