我有以下代码:

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(..)处理,如果不从catch(..)重新抛出,则将保留在那里。

07-26 07:38