Access 2002

Перехват ошибок


Обратите  на то, что форма загружается скрытой, так что пользователь, который может в этот момент работать в Access, ее не видит. Процедура InitErrs должна вызываться в начале любой процедуры, осуществляющей перехват ошибок.

Далее, уже из кода обработки ошибок, нужно вызвать процедуру PushError, чтобы поместить информацию об ошибке в стек. Этой процедуре передаются три параметра: код ошибки, ее описание и имя процедуры. В свою очередь, она вызывает метод формы AddError.

Процедура TestStack показывает, как нужно использовать две предыдущие процедуры. Обратите  процедура InitErrs вызывается сразу после организации перехвата ошибок с помощью оператора On Error GoTo. Далее, если свойство UserControl возвращает значение False, из блока обработки ошибок вызывается процедура PushError с информацией о произошедшей ошибке. Если же свойство UserControl возвращает значение True, процедура просто выводит на экран сообщение об ошибке. Таким образом, с приложением Access может работать как пользователь, так и другое приложение, нуждающееся в ее функциях.

11.15 приведен код модуля формы frmErrorStack, управляющий непосредственно списком ошибок. В нем имеются общедоступные методы для очистки списка (ClearErrors) и добавления в него элементов (AddError), а также процедуры Property Get для свойств, возвращающих информацию об ошибках. Эти свойства называются ErrNo, ErrDesc и ErrDesc. При обращении им передается индекс ошибки. Самая последняя ошибка имеет индекс 0. Чтобы установить общее количество ошибок в стеке, следует обратиться к свойству ErrCount.

Чтобы продемонстрировать, как все это работает, мы включили в приложение-пример CH11.XLS тестовую процедуру TestErrorStack.

Комментарии закрыты