Реферат: Програмирование на Visual Basic
Щелчком мыши по кнопке Add переменную можно добавить в список окна Debug Windows.
Кнопка Immediate окна Debug (рис. 1.26) позволяет вывести переменную на форму или изменить ее значение с помощью оператора присваивания (эти изменения не отражаются на содержании программы). Это окно можно также использовать для ввода команд, изменяющих свойства элементов управления (шрифты, цвет фона и др.). Измененные значения выводятся в окне Debug (рис. 1.27).
Если проект включает много процедур, то полезным средством отладки является трассировка вызова процедур (пункт меню Call... раскрывающегося меню Tool Главного меню или одноименная кнопка панели инструментов). Окно (рис. 1.28.) показывает всю последовательность вызовов от исходной процедуры до текущей (в верхней части расположена последняя вызванная процедура, в нижней - первая). Список позволяет определить, как произошел переход в текущую точку программы.
Рис. 1.25
Рис. 1.27
Рис. 1.28
Эффективным средством отладки является также пошаговое выполнение программы и наблюдение результатов выполнения каждого оператора. После приостановки выполнения программы (точки прерывания или кнопка Break) необходимо войти в окно редактирования кода. Для выполнения одного оператора используется клавиша F8. При этом будет выполнен оператор, выделенный рамкой, а вьщеление будет перенесено на следующий оператор. Повторяя нажатие клавиши, можно осуществлять пошаговое выполнение программы.
Если текущий оператор содержит вызов процедуры, нажатие клавиши F8, щелчок мыши по пункту Step Into (Шаг внутрь) раскрывающегося меню Run или щелчок мыши по пиктограмме Step Into Главного меню вызовет выполнение первого оператора процедуры, которую можно продолжать выполнять по шагам.
Для выполнения всей процедуры (не по шагам) и переходу к оператору, следующему за вызовом процедуры, используется щелчок мыши по пункту Step Over (Обойти) или комбинация клавиш Shift+F8.
При пошаговом выполнении некоторый блок операторов можно обойти. Это можно сделать, установив курсор на оператор, на котором необходимо выполнить следующее прерывание выполнения программы, и щелкнув мышью по пункту меню Step То Cursor или комбинацией клавиш Ctrl+F8.
Пошаговое выполнение можно комбинировать с процедурным выполнением. Отлаженные процедуры одной программы можно выполнять по процедурно, а не отлаженные - пошагово. Средства отладки позволяют также изменять порядок выполнения операторов. При выполнении оператора Set Next Statement (Установить следующий оператор) раскрывающегося меню Run можно перейти к выполнению любого оператора (даже к тем, которые расположены перед текущим) текущей процедуры.
1.3.3. Контроль ошибок на этапе выполнения программы
Ошибки периода выполнения (runtime errors) могут возникать, например, из-за нехватки памяти или дискового пространства, попытки открыть открытый другим приложением файл, выхода индекса за пределы размерности массива и др. В этом случае Visual Basic выводит диалоговое окно с соответствующим сообщением и прекращает выполнение программы (рис. 1.29).
Обработчик ошибок возвращает значение кода ошибки (функция Err), список которых находится в справочной системе (Help) и документации к Visual Basic.
Однако такие ошибки можно обрабатывать методом перехвата ошибок (error trapping). Перехват ошибок обеспечивается вставкой в текст процедуры оператора
On Error GoTo метка, гдеметка помечает место входа в обработчик ошибок.
Если в период выполнения ошибка возникнет в одном из операторов процедуры, расположенных за On Error GoTo метка, то управление передается обработчику ошибок, указанному меткой. Участок обработки ошибок можно закончить оператором On Error GoTo 0.
Рис. 1.29
В обработчик ошибок можно включить оператор Resume и продолжить выполнение программы после исправления ошибки операторами, вставляемыми в обработчик ошибок. Оператор Resume имеет несколько форм:
Resume возобновляет выполнение программы с оператора, вызвавшего ошибку;
Resume ‘Next возобновляет выполнение программы со следующего оператора;
Resume метка возобновляет выполнение программы с оператора, помеченного меткой.
Пример.
В примере в процедуре Primer происходит деление на О (оператор YY = YY/XX, перед выполнением которого переменой XX присваивается значение 0). Этот оператор включен в область обработчика ошибок. При делении на 0 происходит переход на оператор, помеченный меткой Label: (обработчик ошибок), переменной XX присваивается значение 2 и программа продолжает выполнение с оператора, на котором была ошибка на этапе выполнения в результате деления на 0. Программа заканчивает работу и результат распечатывается на форме (рис. 1.30).
Рис. 1.30