我有以下代码:
if (errorList != null && errorList.count() > 0)
{
foreach (var error in errorList)
{
throw new Exception(error.PropertyName + " - " error.ErrorMessage, error.EntityValidationFailed);
}
}
为什么当列表中有多个错误时它只抛出一个异常?
最佳答案
因为异常中断了代码执行,如果它没有被处理的话。
所以代码是这样的:
foreach (var error in errorList)
{
try
{
throw new Exception(error.PropertyName + " - " error.ErrorMessage, error.EntityValidationFailed);
}
catch(...) {}
}
将引发多个异常,准确地说是 errorList.Length
次,这将由 catch(..)
处理,在循环体内,if不会从 catch(..)
中重新抛出,将保留在那里。
关于c# - 为什么我的 for-each 只抛出一个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446410/