Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MyLr2_VB.doc
Скачиваний:
0
Добавлен:
16.04.2019
Размер:
139.78 Кб
Скачать

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

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

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

  • Подготовка перехвата. Выполняется с помощью оператора On Error. Оператор On Error активизирует режим обработки ошибок. Это означает, что при возникновении ошибки выполнения программа не прерывается и стандартное сообщение об ошибке не выводится. Оператор On Error осуществляет передачу управления на подпрограмму обработки ошибок, которая может выдавать сообщение и продолжать работу программы. Возможны три варианта синтаксиса оператора:

On Error GoTo метка -

передача управления на подпрограмму, идентифицирующуюся меткой;

On Error Resume Next -

ошибка игнорируется и управление передается следующему оператору за тем, при выполнении которого возникла ошибка;

On Error GoTo 0 -

отключает предусмотренную пользователем процедуру обработки ошибок и включает стандартный механизм.

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

  • Проверка и устранение ошибки. Это этап обработки ошибки, на котором возникшая ошибка анализируется, и выполняются соответствующие действия. Установить тип ошибки можно с помощью объекта Err. Свойства объекта Err позволяют получить следующую информацию о последней ошибке выполнения: свойство Number - номер возникшей ошибки;

свойство Source - имя проекта, в котором возникла ошибка;

свойство Description - строка с описанием ошибки;

свойство HelpFile - полное имя файла справки.

После того как обнаруженная ошибка обработана, в процедуре нужно предусмотреть очистку свойств объекта Err. Очищает значения всех свойств объекта Err метод Clear.

Все ошибки выполнения можно разделить на две группы: ожидаемые, обработка которых может быть предусмотрена заранее при разработке программы и неожиданные. Если ожидаемые ошибки известны заранее, то целесообразно создать единый для всех процедур модуля обработчик ошибок в виде процедуры. Параметром такой процедуры должен быть код ошибки.

  • Продолжение выполнения программы. Выполняется с помощью оператора Resume. Оператор Resume передает управление из обработчика ошибок в программу. Возможны следующие варианты синтаксиса оператора:

Resume [0] -

повторное выполнение оператора, вызвавшего ошибку;

Resume Next -

выполнение следующего оператора за тем, при выполнении которого возникла ошибка;

Resume метка -

выполнение оператора, помеченного меткой.

Средства обнаружения логических ошибок

В Visual Basic для обнаружения логических ошибок имеются следующие средства отладки программ:

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

  • трассировка процедур. Трассировка - это пошаговое (пооператорное) выполнение процедуры, позволяющее контролировать правильность выполнения алгоритма процедуры;

  • отслеживание в диалоговых окна Locals, Quick Watch и Watches значений переменных, выражений, свойств объектов, возможность изменения этих значений в окне Watches.

В Visual Basic имеется три режима работы с программой:

  • режим работы с текстом программы в редакторе кода;

  • режим выполнения, в котором текст программы не доступен для изменения, его можно только просматривать в окне редактора кода;

  • режим прерывания (режим отладки), когда осуществляется приостановка работы программы. Режим позволяет просматривать значения переменных, продолжать или прекращать работу программы, вносить изменения в текст программы.

Кнопки команд, реализующих средства отладки расположены на панели инструментов Debug(отладка). Команды отладки доступны также из меню Debug. Кроме этого выполнить эти команды можно из контекстного меню вызванного в окне редактора кода.

Панель инструментов Debug:

Start/Continue

(Продолжить)

Запускает программу или продолжает ее выполнение после прерывания

Break

(Прервать)

Вызывает прерывание программы в нужном месте

End

(Сброс)

Завершает выполнение программы

Togge Breakpoint

(Точка останова)

Устанавливает / удаляет в текущей строке точку останова

Step Into

(Шаг с заходом)

Осуществляет пошаговое выполнение процедуры с трассировкой вызываемых ею процедур

Step Over

(Шаг с обходом)

Осуществляет пошаговое выполнение процедуры без трассировки вызываемых ею процедур

Step Out

(Шаг с выходом)

Выполняет оставшуюся часть процедуры и останавливается на следующим после вызова процедуры операторе

Locals Window

(Окно Locals)

Открывает окно Locals (локальные) с текущими значениями всех локальных переменных процедуры

Immediate Window

(Окно Immediate)

Открывает окно Immediate (непосредственное выполнение), в котором можно выполнить нужные операторы

Watch Window

(Окно Watch)

Открывает окно Watch (наблюдение), в котором можно просматривать текущие значения переменных, выражений

Quick Watch

(Быстрый просмотр)

Открывает окно Quick Watch для просмотра текущего значения выражения или переменной, в момент останова работы процедуры

Call Stack

(Стек вызова)

В режиме прерывания открывает диалоговое окно Call Stack со списком всех выполняемых процедур

Точка останова. Точки останова устанавливаются в том случае когда:

  • требуется остановить выполнения программы в нужном месте и проанализировать значение переменных;

  • нужно выполнить трассировку фрагмента процедуры, для проверки работы алгоритма (устанавливается две точки в начало и конец фрагмента процедуры) и т.д.

Установить точку останова можно командой или указателем мыши, щелкнув по полосе индикатора. Полоса индикатора расположена слева от текста процедуры в окне редактора кода и выделена серым цветом. Для отображения полосы индикатора следует установить опцию Margin Indicator Bar на вкладке Editor Format в окне команды Tools\Options.

Установленные в среде разработки точки останова не сохраняются вместе с программой и не включаются в exe-файл при его создании.

Удаление точки останова осуществляется повторным выполнением команды Togge Breakpoint. Несколько точек останова модно удалить одновременно командой Clear All Breakpoints меню Debug.

Можно остановить выполнение программы в нужном месте, не используя точку останова. Для этого следует установить курсор в ту строку, до которой должна выполняться программа, и выбрать команду Run To Cursor меню Debug.

Трассировка процедур. Выполняется в режиме отладки программы и позволяет наблюдать за результатами выполнения каждой строки программы. Является важным средством поиска ошибок и отладки программ. Трассировку можно выполнить с помощью команд Step Into, Step Over и Step Out. Друг от друга команды отличаются правилами работы с вызываемыми процедурами.

Если трассировка программы выполняется командой Step Into (шаг с заходом), то при выполнении оператора вызова процедуры (функции) осуществляется переход в процедуру (функцию) и последующее выполнение команды Step Into приводит к трассировке процедуры.

В отличие от команды Step Into, команда Step Over (шаг с обходом) выполняет вызов процедуры (функции) как единичный оператор, те есть без захода в процедуру (функцию).

В том случае, когда требуется пошаговое выполнение части процедуры до заданного оператора, следует воспользоваться двумя операторами Step Into и Step Out (шаг с выходом). До заданного оператора трассировка должна выполняться командой Step Into. Когда маркер помечает этот оператор, следует выполнить командуй Step Out. Команда Step Out выполнить оставшуюся часть процедуры и возвратиться в точку вызова.

Просмотр значений. Выполняется в режиме отладки и позволяет контролировать значения переменных и выражений в процессе выполнения программы. Visual Basic предоставляет для этого следующие средства:

  • Окно Data Tips. В окне Data Tips отображается значение той переменной, на которую установлен указатель мыши. Установить средство Auto Data Tips можно в окне команды Tools\Options на вкладке Editor.

  • Окно Quick Watch. В окне Quick Watch можно также просмотреть значение одной выбранной переменной (курсор должен находится на имени переменной). Из окна Quick Watch можно выполнить добавление переменной в окно просмотра Watches (кнопка Add). Окно Quick Watch открывается командой Quick Watch меню Debug или кнопкой (Quick Watch) на панели Debug.

  • Окно Watches. В окне Wanches отображаются контролируемые выражения и их значения. Окно Wanches открывается кнопкой Watch Window панели Debug или командой Watch Window меню View.

Добавить выражение в окно можно:

  • из окна команды Quick Watch кнопкой Add;

  • командой Add Watch меню Debug;

  • перетаскиванием выражения из окна редактора кода в окно Wanches.

  • Выражение в окне Wanches можно не только просматривать, но и редактировать. Можно изменить также и текущее значение выражения. Для этого достаточно в окне Wanches щелкнуть мышью на изменяемом выражении или значении.

  • Окно Locals. Это окно отображает все локальные переменные выполняемой процедуры и их значения в режиме отладки автоматически. Окно Locals открывается кнопкой Locals Window меню View.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]