Значительную часть кода в процедуре обработки ошибок должен занимать оператор Select Case.
Следует попытаться учесть все возможные ошибки, которые могут произойти, и создать список номеров ошибок в выражении Select Case обработчика ошибок. Затем можно создать код обработки для каждой ошибки.
Ожидаемая ошибка может быть обработана различными способами:
• Окно сообщения может предупредить пользователя об ошибке.
• Окно сообщения может предоставить пользователю информацию, необходимую для исправления ошибки (например. There is no disk in the disk drive (В этом дисководе нет диска)).
• Ошибку можно проигнорировать и продолжить выполнение кода.
• Ошибку можно проигнорировать и выйти из процедуры.
• Можно принять меры по исправлению ошибки в коде для продолжения успешного выполнения кода.
• Можно осуществить переход в другое место кода. Приведенный ниже код иллюстрирует вышесказанное:
ErrorHandler:
Select Case Err.Number
Case 11
If MsgBox("You divided a number by zero, enter a " & _
" different number. Do you want to try again? ", _
vbQuestion + vbYesNo) = vbYes Then
Resume
Else
Resume ExitHere
End If
Case Else
MsgBox "An unexpected occurred. Error Number: " & _
Err.Number & " Error Description: " & Err.Description
Resume ExitHere
End Select
End Sub
Можно даже создать общую процедуру обработки ошибок определенного типа. Например, если просмотреть таблицу ошибок Access и Jet в файле Access and Jet Database Errors, mdb, можно заметить, что ошибки с номерами 58-76 относятся к файловым ошибкам. Сюда входят File already exists. Disk Full, Too many files и другое. Можно создать общую процедуру, работающую с данной группой ошибок, и вызывать эту процедуру из выражения Case Select обработчика ошибок:
ErrorHandler:
Select Case Err.Number
Case 58 To 76
' Общая процедура, обрабатывающая файловые ошибки.
Call FileTypeErrors
Case Else
MsgBox "An unexpected occurred. Error Number: " & _
Err.Number & " Error Description: " & Err.Description
Resume ExitHer
End Select
End Sub