Access 2002

Процедура teststack


С помощью метода Run объекта Application она вызывает процедуру TestStack из модуля basErrorStack. Обратившись к листингу 11.14, вы увидите, что процедура TestStack намеренно вызывает ошибку деления на 0. Поскольку свойство UserControl имеет значение False, информация об ошибке помещается в пользовательский стек, а сообщение о ней на экран не выводится.

Тестовая процедура TestErrorStack получает ссылку на форму со стеком ошибок и сохраняет ее в объектной переменной frmErrors. В дальнейшем эта ссылка применяется для обращения к пользовательским свойствам формы. Первым проверяется свойство ErrCount. Процедура TestErrorStack обрабатывает в цикле каждое сообщение об ошибке в стеке (в данном случае в нем будет как минимум одно сообщение), считывая значения свойств ErrNo, ErrDesc и ErrDesc. Получив всю необходимую информацию, она выводит ее на экран в окне сообщения Excel. В завершение процедура вызывает метод ClearErrors, чтобы очистить стек ошибок. На  11.2 представлен результат выполнения процедуры TestErrorStack, а на  11.3 — форма frmErrorStack, выведенная на экран с помощью команды Window  Unhide. Для просмотра этой формы нужно приостановить выполнение программы перед вызовом метода ClearErrors.

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

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