Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 07 VB Обработка ошибок.doc
Скачиваний:
3
Добавлен:
09.11.2019
Размер:
91.65 Кб
Скачать

4

Visual Basic 6.0 Лекция 7

7.Обработка ошибок

Ожидаемые ошибки времени выполнения 1

Подготовка перехвата 1

Проверка и устранение ошибки 1

Продолжение выполнения программы 2

Обработка ошибок выполнения 2

Обработка ошибок при вложенных вызовах процедур 3

Глобальная обработка ошибок 4

Неожиданные ошибки выполнения 4

В идеальном случае программа не должна бороться с ошибками в период выполнения. Однако разработчик должен предусмотреть вероятность появления сбойных файлов, переполнения памяти или ввода пользователем некорректных данных. Все это может послужить причиной возникновения ошибок при выполнении программы (Runtime Errors).

П ри обнаружении такой ошибки Visual Basic выводит соответствующее сообщение и приостанавливает выполнение программы. Если приложение было запущено из среды разработки, то существует возможность переключиться в режим отладки с помощью кнопки Break либо в режим проектирования с помощью кнопки End.

Среда разработки относительно "мягко" реагирует на ошибки периода выполнения. Если же такая ошибка возникает после запуска выполняемого exe-файла, то приложение немедленно закрывается. Хотя сообщение об ошибке и появляется, перейти в режим отладки невозможно. Это драматическая реакция, возможно, на совершенно безобидную ошибку.

Перехват ошибок периода выполнения следует предусмотреть на этап разработки приложения. Для этого создаются специальные процедуры – обработчики ошибок (error handlers). Все ошибки периода выполнения можно разделить на две группы: ожидаемые, обработка которых предусмотрена разработчиком, и неожиданные, появление которых не всегда могут предвидеть даже опытные программисты.

Ожидаемые ошибки времени выполнения

Обработка ошибок производится в три этапа:

  • подготовка перехвата;

  • проверка и устранение ошибки;

  • продолжение выполнения программы.

Подготовка перехвата

Первым шагом является расстановка "ловушек". В Visual Basic для этого предназначен оператор On Error, синтаксис которого имеет вид:

On Error GoTo label | Resume Next | GoTo 0

Выполнение оператора On Error активизирует режим обработки ошибок. Это означает, что при возникновении ошибки периода выполнения после ввода в программу этой строки выполняется предусмотренная в программ процедура обработки ошибки. Выполнение программы не прерывается и стандартно сообщение об ошибке не выводится.

Метка (label), указанная в операторе, должна находиться в той же процедуре, что и оператор On Error. Если в качестве метки указан ноль (0), то предусмотренная разработчиком процедура обработки ошибок отключается и включается стандартный механизм обработки ошибок. Опция Resume Next подробно описывается в следующем разделе.

Проверка и устранение ошибки

Оператор On Error не выполняет непосредственно никакой обработки ошибок, а лишь передает управление ответственному за обработку ошибок фрагменту программы. Для обеспечения перехвата всех ошибок в процедуре оператор On Error, по возможности, должен находиться в самом ее начале.

Обработка ошибки должна выполняться сразу после ее обнаружения. Сначала следует установить тип ошибки. Для этого в Visual Basic существует объект Err, свойство которого Number содержит код последней возникшей ошибки. Для совместимости с предыдущими версиями Visual Basic свойство Number объекта Err является свойством по умолчанию.

Список кодов ошибок, которые можно перехватывать и обрабатывать, вы найдете в системе справок Visual Basic. После определения типа ошибки по коду (свойство Number объекта Err) следует попытаться устранить ошибку или обработать ее так, чтобы она не мешала выполнению программы.