Объектно-ориентированный подход в программировании. Проектирование и реализация приложений в среде Microsof Office. Евсеева О.Н. - 99 стр.

UptoLike

Составители: 

1.5. Отладка программ и обработка ошибок 100
3
Resume
Заданным по умолчанию свойством объекта Err является свойство Number,
поэтому нижеприведенные инструкции эквивалентны:
Select Case Err.Number
Select Case Err
При задании собственных ошибок необходимо сложить номер ошибки с
константой vbObjectError. Таким образом, можно гарантировать, что номер
не совпадет с номером стандартной ошибки VBA. Например, инициировать
новую ошибку можно такой командой:
Err.Raise vbObjectError + 1, "MyProject.MyObject" _
"Служащего с таким именем в данном отделе нет"
Рассмотрим процедуру, которая активизирует выполняющееся приложение
Character Map
. Если приложение не запущено, то генерируется ошибка и
вызывается подпрограмма обработки. Ошибка 5 – это ошибка, возникающая
при попытке активизировать незапущенное приложение. Процедура обработки
вызывает функцию
Shell
, которая запускает требуемое приложение. Обратите
внимание на использование блока Case Else, который обрабатывает
непредвиденные ошибки. Подпрограмма обработки в случае непредвиденной
ошибки не будет пробовать повторно выполнить инструкцию AppActivate, а
сразу выйдет из подпрограммы.
Sub ShowCharMap()
Dim AppName As String, AppTitle As String
Dim SellResult
AppTitle = "Character Map"
AppName = "CharMap"
On Error GoTo AppNoRunning
AppActivate AppTitle
ExitShowApp:
Exit Sub
AppNoRunning:
Select Case Err.Number
Case 5
ShellResult = Shell(AppName, vbNormalFocus)
Resume
Case Else
MsgBox "Ошибка ShowApp: " & Err.Description, _
vbCritical + vbOKOnly, "Непредвиденная ошибка"
Resume ExitShowApp
End Select
End Sub