Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обработка ошибок




Обработка ошибок и неправильных действий пользователя — обязательная составляющая любого проекта. Для работы с ошибками в Visual Basic 6 есть специальный оператор on Error.

Существует несколько вариантов синтаксиса этого оператора. Первый вариант имеет вид:

On Error Go To StringLabel

где StringLabel — метка оператора. Она должна быть уникальной в пределах процедуры.

Метка оператора — это любое текстовое значение, начинающееся с буквы и завершающееся двоеточием. В этом варианте синтаксиса при возникновении ошибки программа будет переходить к оператору, следующему непосредственно за меткой StringLabel. Например, приведенный ниже код выполняет обработку ошибки:

On Error Go To ErrorLabel

текст кода процедуры ErrorLabel:

Call ErrorProcedure ()

End

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

Для игнорирования ошибки необходимо использовать следующий вариант оператора on Error:

On Error Resume Next

Для того чтобы отключить обработку ошибок в какой-либо процедуре, оператор on Error записывается в виде:

On Error Go To 0

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

  • служебная переменная Err, которая содержит код ошибки;
  • служебная переменная Error, которая содержит текст системного сообщения об ошибке;
  • объект Err, который содержит одновременно код и сообщение об ошибке.

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

  • Resume Next

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

  • On Resume NextLabel

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

Приведенный ниже код обрабатывает ошибки:

On Error Go To ErrorLabel

текст кода процедуры

ErrorLabel:

Call ErrorProcedure ()

Resume NextStatement

текст кода процедуры

NextStatement:

текст кода

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

 

Условная компиляция:

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

Объявление константы условной компиляции в коде осуществляется при помощи директивы #Const, а блоки кода для условной компиляции обозначаются директивой #If...Then...#Else. Например, для создания версий одного и того же приложения на французском и немецком языках из одного исходного кода, необходимо внедрить зависимые от платформы сегменты кода в инструкции #If...Then с помощью определенных ранее констант FrenchVersion и GermanVersion. Как это сделать, показано в следующем примере:

Язык Visual Basic

#If FrenchVersion Then

' <code specific to the French language version>.

#ElseIf GermanVersion Then

' <code specific to the German language version>.

#Else

' <code specific to other versions>.

#End If

 

Если для константы задается FrenchVersion значение True во время компиляции, компилируется условный код для французской версии. Если установить для константы GermanVersion значение True, компилятор использует немецкую версию. Если ни одна константа не имеет значения True, выполняется код в последнем блоке Else.Примечание.

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

 





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


Дата добавления: 2014-12-23; Просмотров: 429; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.