Лекция: Объект Err
Процедура обработки ошибок обычно включает объект Err, который содержит всю информацию о последней ошибке.
Рассмотрим два важнейших свойства объекта Err:
| Свойство | Описание |
| Number | Возвращает код ошибки. |
| Description | Возвращает текст сообщения об ошибке |
Пример:
ОбработкаОшибок:
MsgBox «Произошла ошибка: » & _
Cstr(Err.Number) & "-" & _
Err.Description, vbInformation, _
«Cообщение об ошибке»
Объект Err имеет свои методы:
| Метод | Описание |
| Clear | Очищает все значения свойств объекта Err. |
| Raise | Создает ошибку выполнения. Используется при моделировании ошибок. |
Напишем программу ОбратноеЧислоError, в которой ошибки обрабатываются с помощью конструкции On Error:
| 1) | Sub ОбратноеЧислоError () |
| 2) | Dim x As Double |
| 3) | Dim y As Double |
| 4) | Dim Число As String |
| 5) | 'Передача управления на обработчик ошибок, _ помеченный меткой Ошибка: |
| 6) | On Error GoTo Ошибка |
| 7) | x = CDbl(InputBox(«Введите число:»)) |
| 8) | y = 1 / x |
| 9) | MsgBox «Обратное число:» & y |
| 10) | Exit Sub |
| 11) | 'Обработчик ошибок |
| 12) | Ошибка: |
| 13) | MsgBox «Произошла ошибка: » & _ Cstr(Err.Number) & "-" & _ Err.Description, vbInformation, _ «Cообщение об ошибке» |
| 14) | Select Case Err.Number |
| 15) | Case 11 |
| 16) | MsgBox «Деление на ноль запрещено!», _ vbExclamation, «Обратное число » |
| 17) | Case 13 |
| 18) | MsgBox «Некорректный ввод исходного значения!», _ vbExclamation, «Обратное число» |
| 19) | Case Else |
| 20) | MsgBox «Непредвиденная ошибка!», _ vbExclamation, «Обратное число» |
| 21) | End Select |
| 22) | End Sub |
Обратите внимание на 10-ю строку кода, которая обеспечивает выход из процедуры перед активизацией обработчика ошибок. При её отсутствии управление передается на следующую команду, т.е. будет выведено сообщение об ошибке, даже если её и нет.
13-я строка кода приведена лишь в учебных целях, для неискушенного пользователя она не понятна!
12. Разработка
пользовательского интерфейса