русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Выход из обработчика ошибок


Дата добавления: 2015-07-23; просмотров: 618; Нарушение авторских прав


В процедуре обработки ошибок для идентификации ошибок используются оператор If и Select и, следовательно, соответствующие условные выражения. В этих условных выражениях обычно проверяется значение свойства Number (Номер) объекта Err (Ошибка). Объект Err содержит информацию об ошибке, возникшей во время выполнения приложения, а свойство Number возвращает числовое значение, указывающее на тип ошибки. После определения типа ошибки и, возможно, выполнения каких-либо действий процедура обработки ошибок должна заканчиваться одним из следующих операторов.

  • Resume - возвращает управление оператору, при выполнении которого во: никла ошибка.
  • Resume Next - возвращает управление оператору, следующему за оператором, при выполнении которого возникла ошибка.
  • Resume метка - осуществляет переход к указанной метке.
  • End - завершает выполнение процедуры или приложения.

Пример обработчика ошибок

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

  1. Создайте новую процедуру под именем ПримерОбработчик.
  2. Введите код процедуры.

Dim sngValue As Single, sngDivideBy As Single

Dim sngAnswer As Single

Dim iResponse As Integer

On Error GoTo ErrorZone

sngValue = InputBox("Введите делимое")

sngDivideBy = InputBox("Введите делитель")

sngAnswer = sngValue / sngDivideBy

MsgBox "Результат деления = " & sngAnswer

Exit Sub

ErrorZone:

Select Case Err

Case 7

MsgBox "He хватает памяти" & _

Chr(13) & "Закройте неиспользуемые приложения"

Resume

Case 35 To 51

MsgBox "Обратитесь к справочной системе"

Case 11

MsgBox "Деление на ноль"



Case Else

MsgBox "Неопознанная ошибка. Приложение завершается"

End

End Select

  1. Начните выполнение процедуры. Введите число 10 в первое окно ввода.
  2. Введите 0 во второе окно ввода. После нажатия клавиши <Enter> отобразится окно с сообщением о делении на ноль.
  3. Щелкните на кнопке ОК для закрытия окна сообщения.

С помощью функции Error можно выводить текст, соответствующий возникшей ошибке. Измените процедуру ПримерОбработчик, как показано ниже (новый оператор выделен полужирным шрифтом).

Private Sub ПримерОбработчик()

Dim sngValue As Single, sngDivideBy As Single

Dim sngAnswer As Single

Dim iResponse As Integer

On Error GoTo ErrorZone

sngValue = InputBox("Введите делимое")

sngDivideBy = InputBox("Введите делитель")

sngAnswer = sngValue / sngDivideBy

MsgBox "Результат деления = " & sngAnswer

Exit Sub

ErrorZone:

Select Case Err

Case 7

MsgBox "He хватает памяти" & Chr(13) & _

"Закройте неиспользуемые приложения"

Resume

Case 35 To 51

MsgBox "Обратитесь к справочной системе"

Case 11

MsgBox "Ошибка выполнения: " & Error

Case Else

MsgBox "Неопознанная ошибка. Приложение завершается"

End

End Select

End Sub

Начните выполнение процедуры. Введите число 5 в первое окно ввода и число 0 - во второе. Появится окно сообщения, показанное на рис. 13.1.

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

Рис. 13.1. Текст сообщения, предложенный функцией Error



<== предыдущая лекция | следующая лекция ==>
Перехват ошибок | Централизованный обработчик ошибок


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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