Отладка программ и обработка ошибок в Visual Basic 6



Цель лабораторной работы:

- ознакомиться с возможностями Visual Basic 6 по отладке программ и обработке ошибок;

- приобрести практические навыки по отладке программ.

 

Основные сведения о средствах отладки и обработки ошибок

 

Отладка программ является обязательным этапом работы над любым проектом. Суть отладки программ заключается в проверке работы проекта и исправлении ошибок в проекте при разработке приложения.

В процессе отладки проекта возможны три вида ошибок:

- ошибки компиляции (синтаксические), возникающие при неправильном использовании синтаксиса инструкций, свойств и методов объектов. Эти ошибки выявляются на уровне компиляции и легко исправляются;

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

- логические ошибки, являющиеся причиной неправильной работы программы. Для обнаружения таких ошибок предназначены средства отладки. Средства отладки позволяют обнаружить логические ошибки и ошибки периода выполнения, а также наблюдать за выполнением программы.

 

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

 

Редактор кода представляет собой инструмент для создания и отладки приложения.

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

Редактор кода содержит набор средств позволяющих не только обнаружить синтаксические ошибки, но и предотвратить их возникновение.

К таким средствам относятся: 

ü Auto Syntax Check - автоматическая проверка синтаксиса;

ü Auto Quick Info - контекстная подсказка. Это средство представляет собой небольшое окно, в котором автоматически отображается полный синтаксис вводимого оператора;

ü Auto List Members - автоматическое отображение списка имен, свойств и методов объектов. Содержимое списка зависит от типа объекта. Выбор элемента в списке выполняется мышью, или клавишами управления курсором. Если дважды щелкнуть по выбранному элементу, или нажать клавишу TAB, то выбранный элемент вставляется в текущую строку и курсор остается в той же строке. Если выбрать элемент и нажать Enter, то выбранный элемент вставляется в строку и курсор переходит на следующую строку;

ü цветовое выделение элементов кода для визуального контроля при наборе текста процедур. В окне команды Tools\Options на вкладке Editor Format Visual Basic позволяет задать параметры шрифта и цвета для таких элементов текста, как:

- текст окна кода (Normal Text),

- выделенный текст (Selection Text),

- текст ошибочной строки (Syntax Error Text),

- текст в точке выполнения (Execution Point Text),

- текст в точке останова (Breakpoint Text),

- комментарий (Comment Text),

- ключевое слово Basic (Keyword Text),

- имена процедур и переменных (Identifier Text),

- текст строки с закладкой (Bookmark Text) и текст обратного вызова (Call Return Text);

ü  функция дополнения слова. Если введено несколько начальных символов свойства, метода или элемента структуры, достаточных для их однозначной идентификации, то нажатием кнопки  (Complete Word) панели инструментов Edit или клавиш Ctrl+Space Visual Basic может автоматически дополнить недостающие символы;

Подключение или отключение средств Auto Syntax Check, Auto Quick Info и Auto List Members выполняется в окне команды Tools\Options на вкладке Editor.

Редактор кода может работать в двух режимах: режиме просмотра всего текста приложения и режиме просмотра процедур по отдельности. Кнопки включения режимов Full Module View (полный просмотр процедур) и Procedure View (просмотр процедур) находятся в левом нижнем угле окна редактора кода.

 

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

 

При обнаружении ошибки времени выполнения 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/Ckntinue (Продолжить) Запускает программу или продолжает ее выполнение после прерывания
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\Optikns.

Установленные в среде разработки точки останова не сохраняются вместе с программой и не включаются в 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\Optikns на вкладке 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.

 


Дата добавления: 2018-05-12; просмотров: 1034; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!