C # Обработка ошибок Вопрос - PullRequest
2 голосов
/ 02 июня 2011

В моем коде у меня есть цикл и внутри try catch.При обнаружении ошибки блок catch работает, должен зарегистрировать ошибку и отправить электронное письмо с информацией о сообщении об ошибке.

Теперь я хочу, чтобы это было сделано, и вернитесь в цикл, чтобы продолжить обработку.

Если мне нужно перебрать 100 записей, и в 51-й записи обнаружена ошибка, то catch должен зарегистрировать ее, отправить по электронной почте и вернуться, чтобы продолжить с 52-й записью (видRESUME NEXT в VBS).

Как это можно сделать?

Ответы [ 4 ]

9 голосов
/ 02 июня 2011

Поймать исключение в цикле (не вне цикла). Тогда он просто продолжит цикл.

3 голосов
/ 02 июня 2011
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
   }

}
1 голос
/ 02 июня 2011

в моем коде у меня есть цикл и внутри try-catch,

Если ваш блок try-catch находится внутри вашего цикла, то у вас все будет в порядке:

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

Если он вне вашего цикла for, просто переместите его внутрь:)

1 голос
/ 02 июня 2011

поместите следующую структуру в ваш цикл:

//While (Looping)
//{    

    try
    {
        // write your logic here ..

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

        continue;
    }


    // more logic could be here ..

//}
...