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

Логические ошибки

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

Для выявления логической ошибки и её устранения требуется обширное тестирование.

VisualBasicсодержит некоторые эффективные инструменты для поиска источников ошибок.

Встроенный отладчик Debug позволяет:

  • просматривать значения переменных,

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

  • определять вызывающий и вызываемый модули.

Просмотр значения переменной при выполнении программы называется наблюдением.

Для установки наблюдения за переменной нужно в меню Debug(отладка) выбратьAddWatch(добавить наблюдение). Будет открыт специальный диалогокноAddWatch.

Необходимо в поле Expression(Выражение) ввести имя переменной, за которой будем наблюдать. В спискеContextнужно указать где, во всей программе или в определенных процедурах, выполняется наблюдение за переменной.

Опции WatchType(тип наблюдения) позволяют указать, выполняется ли только наблюдение за переменной, либо производится прерывание выполнения программы при определенных условиях:

  • наблюдаемое выражение = True;

  • при изменении значения переменной.

Редактирование (изменение) выражения в окне отладчика можно выполнить в диалоге EditWatchв менюDebug.

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

Результаты наблюдения отображаются в диалоговом окне Watches:

Watches

Expression

Value

Type

Context

x

-37

Integer

Form2.Form_Lood

Прерываниевыполнения программы пользователем может потребоваться, если необходимо проверить значение переменной в определенной точке программы – это так называемый режим работыс остановом в контрольных точках. Контрольная точка устанавливается при проектировании программы: открывается окноCodeна тексте соответствующей процедуры, курсором выделяется оператор, перед которым мы хотим выполнить прерывание выполнения программы, и нажимается клавиша <F9>. Точка прерывания задается в менюDebugв опцииToggleBreakpoint.VisualBasicвыделит выбранную строку кода и поместит слева от нее красный кружок.

Пошаговое выполнение программыявляется более эффективным и наглядным средством отладки программыVisualBasic. Здесь появляется возможность наблюдать за результатами выполнения каждого оператора. Особенно полезно это при определении правильности работы условных операторовIfиSelectCase.

Старт программы выполняется клавишей F8 или командой из менюDebug. При этом можно входить внутрь вызываемых процедур, а можно и не входить: стартовать кнопкойStepInto(шаг внутрь)/Stepover(перешагнуть). Если уже отлажена значительная часть программы, вместо пошагового выполнения всей программы можно установить контрольную точку и продолжить выполнение от нее клавишейF8 в пошаговом режиме.

Для получения информации о типе возникшей ошибки можно использовать встроенный объект Err. Свойства и методы объектаErr:

  • Description– содержит описание ошибки; это короткая фраза (например,Overflow– переполнение), которая чаще всего недостаточна для пользователя;

  • Number– содержит номер возникшей ошибки;

  • Source– содержит название объекта или приложения, вызвавшего ошибку.

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

Private Sub…………………(….)

On Error Goto метка1

Обработка данных, в т.ч. проверка на пустое значение, цифры, буквы

………….

………….

………….

Метка2: Exit Sub

Метка1: MsgBox Err.Description

Resume метка2

End Sub

Окно отладки Immediate можно вызвать командой Immediate Window меню View или [Ctrl + G]. В этом окне можно не только изменять содержимое переменных или свойств, но и применять методы объектов.

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

Например: If x=0 Then

Y=sin(x)

Debug.Print“левая ветвь, x=” ;x

Else

Y=cos(x)

Debug.Print “правая ветвь, x=”; x

EndIf

.

Некоторые важные инструменты отладки доступны через контекстное меню.Для вызова контекстного меню нужно перейти в режим просмотра кода и щелкнуть правой кнопкой мыши. В открывшемся окне предоставляется:

  • список свойств/методов;

  • список допустимых констант;

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

  • описание указанного курсором объекта, переменной или константы;

  • проводник объектов.