![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
msdmsd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Вот пример - в цикле выполняются операции над элементами массива - деление 1 на очередной элемент. Некоторые элементы нули.
Надо чтобы когда попадаются нули выполнялась обработка исключения и цикл был продолжен. В этом примере первое исключение срабатывает как надо, но на следующем нулевом элементе исключение не ловится - бейсик обрабатывает его сам и программа завершает работу. Попытки переопределить обработку исключений ни к чему не приводят. Как это обойти?
|
|||
|
||||
Dexx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 292 Регистрация: 13.6.2005 Репутация: 5 Всего: 7 |
Почему бы не добавить проверку на 0
-------------------- |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: -1 Всего: 16 |
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Обработчик исключений следует завершать не Goto, а Resume. В крайнем случае (нежелательно!) использовать Err.Clear
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
msdmsd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
если вместо Goto написать Resume - то данный пример просто зависнет - после обработки будет возврат к той же строке и снова исключение.
Можно написать Resume Next - тогда для этого примера будет все как надо, но что делать если требуется следующее: (есть ли вариант решения без использования каких то дополнительных флажков и т.п.)
|
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
А сделать Resume на другую строку или просто On Error Resume Next религия не позволяет? или простое нежелание читать справку?
Я уж не говорю о том, что ПЕРЕД делением можно проверить операнд. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
msdmsd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
спасибо, за ответ, только мне непонятна реакция.
зачем вообще форум, если все можно где-то прочитать, а про проверку на 0 я полагал, что это очевидно, пример то искусственный, вопрос то был про исключения. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Форум - для решения вопросов, которые не удалось решить самостоятельно. Но если не удалось потому, что лень нажать F1 и прочитать десять строк справки... какой реакции на ЭТО ты ожидаешь? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |