Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте инструкцию On Error GoTo для перехвата ошибок и направления потока процедуры в расположение инструкций обработки ошибок в процедуре. Например, следующая инструкция направляет поток к строке метки:
On Error GoTo ErrorHandler
Обязательно присвойте каждой метке обработчика ошибок в процедуре уникальное имя, которое не будет конфликтовать с любым другим элементом в процедуре, и убедитесь, что к имени добавляется двоеточие. В процедуре поместите инструкцию Exit Sub или Exit Function перед меткой обработчика ошибок, чтобы процедура не выполняла код проверки ошибок, если ошибка не возникает.
Sub CausesAnError()
' Direct procedure flow.
On Error GoTo ErrorHandler
' Raise division by zero error.
Err.Raise 11
Exit Sub
ErrorHandler:
' Display error information.
MsgBox "Error number " & Err.Number & ": " & Err.Description
' Resume with statement following occurrence of error.
Resume Next
End Sub
Метод Raise объекта Err создает указанную ошибку. Свойство Number объекта Err возвращает число, соответствующее последней ошибке во время выполнения; Свойство Description возвращает соответствующий текст сообщения для заданной ошибки.
Примечание.
В версиях 1.x и 2.0 Access вы могли использовать инструкцию Error для создания ошибки, функцию Err для возврата номера ошибки и функцию Error для возврата описания ошибки. Существующий код обработки ошибок, который использует инструкцию Error и функцию Error, будет продолжать работать. Однако при написании нового кода лучше использовать объект Err, его свойства и методы.
В версиях 1.x и 2.0 Access возвращалась только одна ошибка для всех ошибок автоматизации (ранее — OLE-автоматизация). Приложение-компонент COM, создающее ошибку, теперь возвращает те же сведения об ошибке, которые вы получили бы, если бы вы работали в этом приложении. Для правильной обработки новых ошибок может потребоваться переписать существующий код обработки ошибок службы автоматизации.
Если вы хотите вернуть описательную строку, связанную с ошибкой Access или ошибкой объектов доступа к данным (DAO), но эта ошибка фактически не произошла в коде, можно использовать метод AccessError для возврата строки.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.