C#错误处理问题

时间:2011-06-02 18:29:01

标签: c# exception-handling try-catch

在我的代码中,我有一个循环,位于try catch内。遇到错误,catch阻止有效,应记录错误并发送电子邮件通知错误消息。

现在我希望它能够做到这一点,然后回到循环中继续治疗。

如果我必须遍历100条记录,并且在第51条记录中检测到错误,那么catch应该记录它,通过电子邮件发送,然后返回继续第52条记录(类似于RESUME NEXT在VBS)。

如何做到这一点?

4 个答案:

答案 0 :(得分:9)

在循环中捕获异常(不在循环外部)。然后它将继续循环。

答案 1 :(得分:3)

foreach(var record in records)
{
   try
   {
       processRecord(record);
   }
   catch(*Exception that you are interested in*)
   {
       // log exception
       // spawn new backgroundworker to send email about exception
   }

}

答案 2 :(得分:1)

将以下结构放在循环中:

//While (Looping)
//{    

    try
    {
        // write your logic here ..

    }
    catch(Exception ex)
    {
        // log exception && send mail

        continue;
    }


    // more logic could be here ..

//}

答案 3 :(得分:1)

  

在我的代码中我有一个循环并在try catch中,

如果你的try-catch块在你的循环中,那么你应该没问题:

for ( ... )
{
    try
    {
        ...
    }
    catch (...)
    {
        ...
    }
}

如果它在你的for循环之外,那么只需将其移入内部:)