| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > исключение в try...catch |
| Автор: AlexLogos 25.10.2010, 11:57 | ||
Здравствуйте. Как мне сделать так чтоб при возникновении исключения в блоке try...catch цикл продолжал выполнение?
как только возникает исключение цикл прерывается. |
| Автор: CYBERDREAM 25.10.2010, 12:03 |
| Приветствую. странно но не должен. Дай весь код |
| Автор: AlexLogos 25.10.2010, 12:17 |
| если не должен то пока попробую другую проблемку решить. может она и есть загвоздка. спасибо. |
| Автор: Yagmort 26.10.2010, 14:49 | ||||
| Используй вместо while () do синтаксис при этом условие написанное в операторе do выполнится хотябы 1 раз
try и cath созданы для того чтобы бы остановить программу при возникновении ошибки и синтаксис такой
попробуй функцией передать в блок while параметр а функцию вызывай в операторе finally. Может и прокатит, не пробовал не знаю. |
| Автор: CYBERDREAM 26.10.2010, 16:51 |
| а я то боялся что только я так подумал )) |
| Автор: gambit 26.10.2010, 16:59 | ||
А если дело не там, то посмотри данную модель:
в данном коде на 4 итерации происходит ошибка которая здесь же и обрабатывается, после обработки цикл продолжается, а на 9 появляется ошибка которая в данном try не обработана, она обрабатывается выше, и в цикл уже не возвращается. |
| Автор: Mephisto 27.10.2010, 18:40 |
| OMG!!! Yagmort, долго пытался понять твой ответ. gambit, в примере catch без параметра. Так что там либо goto закрался какой, либо полнолуние меняет направление потока электронов в процессоре. В противном случае выхода из цикла быть не должно. |
| Автор: gambit 28.10.2010, 09:43 | ||
| есть цикл, в нем try который ловит ArgumentException, на 4 шаге, кидается ArgumentException и тут же обрабатывается, после чего цикл продолжается. На 9 шаге кидается Exception, идем в блок catch и видим что здесь мы его обработать не можем, ищем выше по стеку catch который может обработать такую ошибку, для этого должен быть catch (Exception) { } или c# позволяет не писать конкретную ошибку в скобках, тогда считается что будет ловится Exception, вот мы выше по стеку и обнаруживаем такой блок, заходим в него, обрабатываемся, и все, назад по стеку мы уже не пойдем, только вперед. А впереди в данном случае ничего нет. Так что все логично. про это написал. брррр, не переношу этого слова
не очень шутка удалась. |