Отправляет email-рассылки с помощью сервиса Sendsay

[prg] Re[4]: Обработка исключения NullReferenceException

Здравствуйте, Владимир.

Вы заключаете в try catch весь цикл foreach, в моем же примере в try
catch помещаем только добавление в ListBox. В вашем случае при появлении
хотя бы одного исключения прекращается весь цикл и поэтому ListBox у вас
пустой, в моем же примере цикл будет продолжаться и ListBox будет
заполняться.

Спасибо, действительно если взять в блок только листбокс, то все
нормально. В прошлом письме я невнимательно просмотрел ваш пример.
Можете ли Вы объяснить, почему цикл останавливается, если заключить в
trycatch весь foreach?

Ответить   Wed, 25 Jan 2017 14:27:09 +0300 (#3467291)

 

Ответы:

Здравствуйте Кирилл,

try catch срабатывает лишь единожды, т.е. когда Вы заключаете в него весь
цикл, то достаточно одной ошибки, чтобы сработало try catch.
Получается, что когда в теле try { }, в котором расположен цикл целиком и в
котором отлавливается исключения, возникает данное исключение, мы выходим из
цикла и переходим к обработке исключения catch { } без возврата к циклу.
В моем же примере, Вы заключаете в тело try { } лишь ту часть кода, которая
заполняет ListBox, т.е. мы отлавливаем исключение, которое происходит при
добавлении элемента в ListBox и обработка этого исключения происходит все
еще в цикле., т.е. после обработки данного исключения в catch { } цикл
foreach продолжает свою работу.

С уважением
Владимир

Ответить   vkon@f*****.de Wed, 25 Jan 2017 13:19:54 +0100 (#3467305)