КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Подсказка. Лучше всего с помощью отладки найти и исправить все проблемы во фрагменте кодаЛучше всего с помощью отладки найти и исправить все проблемы во фрагменте кода. После завершения этого процесса можно добавить код обработки ошибок, рассчитанный на непредвиденные проблемы. Если код обработки ошибок вставить раньше, отладить ваше приложение, возможно, будет немного труднее.
Обычно, когда программа Access обнаруживает ошибку, она переходит к коду, вызвавшему проблему, переключается в режим прерывания и отображает сообщение об ошибке. Такое поведение полезно, если вы планируете устранять проблему, но оно лишь травмирует обычных пользователей, которые, возможно, работают с вашей БД. Мало того, что они никогда раньше не видели программного кода, они окажутся в большой опасности, попытавшись исправить его, и создадут новые проблемы. Вместо этого вам нужен способ обработки ошибки средствами программного кода. В языке Visual Basic есть специальный оператор, сообщающий программе Access о том, как поступать с ошибками. Это оператор On Error. Оператор On Error предоставляет несколько вариантов. Можно заставить программу Access пропустить ошибки и попытаться выполнить очередную строку кода, например, следующим образом:
On Error Resume Next Этот вариант почти всегда — не лучший выбор. Если ошибка возникла, за ней вероятнее всего последуют другие. В худшем случае такая ситуация может вынудить вашу программу делать вовсе не то, для чего она предназначена. Можно также заставить программу Access перейти в конкретное место кода. Далее приведен пример.
On Error Goto ErrorHandlingCode В данном примере программа Access переходит к разделу, названному ErrorHandlingCode, как только она обнаруживает какую-либо проблему. Вы должны обозначить этот раздел, указав в отдельной строке его имя и следом за ним вставив двоеточие (:), например, так: ErrorHandlingCode: ' Если возникла ошибка, Access начинает выполнять ваш код с этой точки Очень легко понять, как действует система обработки ошибок, если рассмотреть ее использование на примере функции ValidateCard: Function ValidateCard(CardNumber As String) On Error Goto ErrorHandlingCode
' Здесь расположен код, реализующий алгоритм Луна Exit Function ErrorHandlingCode: MsgBox "Oops. Did your credit card number have letters?" ValidateCard = False End Function Перечислим несколько важных деталей. Во-первых, оператор On Error помещается в cамом начале программного кода процедуры, поэтому вы можете обнаружить ошибки, возникшие в любом месте последующего кода. Во-вторых, обратите внимание на то, что после ого, как закончен код проверки номера, процедуру завершает оператор Exit Function. Этот оператор не дает программе Access попасть в следующий далее код обработки ошибок, если никакой ошибки не произошло. Наконец, код обработки ошибок выводит окно сообщения, в котором сообщается о нарушении естественного хода событий и возвращается результат, ясно обозначающий проблему. Чаще всего разработчики именно так обрабатывают ошибки. Только помните об обязательном использовании оператора Exit Sub или Exit Function, чтобы избежать случайного выполнения кода обработки ошибок.
|