考虑以下代码片段:
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 然后抛出它。当我运行调试器时,每个字符串消息“需要设置 X”都会出现在 catExceptions 集合中。但是,当归结为 AggregateException 时,现在唯一的消息是“发生了一个或多个错误”。
有没有一种方法可以聚合,同时仍保留单个消息?
谢谢!