c# - 为什么我的 for-each 只抛出一个异常?

标签 c# .net asp.net-mvc

我有以下代码:

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/

相关文章:

c# - 从字符串中删除所有空格,这些空格仅存在于分隔符前后

.net - 使用 RNGCRYPTOSERVICEPROVIDER 生成指定范围内的随机数

.net - ASP.Net 程序员应该引用哪些其他框架来获得代码灵感?

c# - 从 DataTable 中提取 double 列

asp.net - ASP.NET MVC Controller 可以返回图像吗?

css - 是否有任何 View 助手来生成 CSS?

c# - .NET Core 是否支持 Web 套接字?抛出“System.Net.WebSockets.WebSocketException 异常

c# - 使用 XmlNamespaceManager 从 XmlNode 中选择

c# - 文件不显示在资源管理器中,但 VB.NET 打开它

asp.net-mvc - ASP.NET MVC是否会使浏览器刷新使TempData无效?