Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка КП Visual Basic.doc
Скачиваний:
103
Добавлен:
16.12.2013
Размер:
5.55 Mб
Скачать

Например, при наборе оператора MsgBox автоматически отображается его синтаксис:

MsgBox (Prompt [, Buttons…]….)

Режим QuickInfoможно отключить с помощью опцииAutoQuickInfoменюTools/OptionsВкладкаEditorОпции.

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

Выбрав нужный элемент в списке, нажатием клавиши [Tab] вводим его в текущую строку кода – курсор остаётся в строке. Для ввода выбранного элемента и перехода на следующую строку необходимо нажать клавишу [Enter].

Автоматическое отображение списка можно отключить с помощью опции AutoListMembersменюTools/OptionsEditor.

Аналогично действует и функция дополнения слова, если в окне кода введено несколько начальных символов свойства, метода или элемента структуры, которых достаточно для однозначной идентификации. Для этого следует щёлкнуть по кнопке CompeteWordпанели инструментовEditor.

Ошибки в структуре программы– это синтаксические ошибки в многострочных операторах циклов и ветвлений. Структурное форматирование кода обеспечивается установкой менюTools/OptionsEditorTabи определяет размер отступа слева 4. При этом должна быть включена опцияAutoIndent, которая определяет, будет ли текстовый курсор после перевода строки автоматически переходить в тот же столбец, в котором начиналась предыдущая строка, в противном случае наборс первого столбца.

Установка Option Explicitв окне кода позволяет требовать явного объявления всех переменных в программе. Ее можно задать в опции Require Variable Declaration вкладки Editor меню Tools/ Options .

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

Рис. 17. Сообщение об ошибке выполнения программы

Панель сообщений содержит три доступные кнопки:

  • End– завершить программу,

  • Debug– обратиться к редактору кода,

  • Help– получить развёрнутую помощь.

Перехват ожидаемых ошибок. Оператор On Error.

Любая ошибка программы во время её выполнения (Runtime) отрабатывается системными средствами и, как правило, завершается:

  • снятием программы с выполнения;

  • выдачей соответствующего сообщения.

Так бывает, когда VisualBasicвыполняет оператор, который по какой-либо причине не может быть завершён «как положено».

Иногда это бывает связано с нашей халатностью:

  • не готов принтер;

  • не готов диск;

  • VisualBasicне может найти файл;

  • возникает деление на ноль.

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

Оператор On Errorиспользуется для обнаружения ошибки времени выполнения и помещается перед оператором, который вызывает опасения:

OnErrorметка

Здесь метка – некоторое имя группы операторов, отделяемое от них «:».

Оператор OnErrorсообщает место перехода в программе в случае возникновения ошибки.

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

Например, по команде Openсистема обращается к дисководу, не обнаруживает там диска. Обработчик выводит сообщение пользователю, тот вставляет дискету и командаOpenповторно выполняется успешно.

Если указан оператор Resume Next, то выполняется возврат на строку, следующую за строкой, вызвавшей ошибку. С помощью оператораResumeимя_метки можно выполнить возврат на строку с заданной меткой.

Оператор OnErrorв некоторых случаях используют для игнорирования ошибки:OnErrorResumeNext. Так можно обойти оператор, вызывающий ошибку.