Одна из главных задач, которая стоит перед программистом, создающим профессиональное
приложение, - мягкий перехват ошибки, без завершения работы программы и вывода
малопонятного сообщения об ошибке.
Источник ошибок времени выполнения не всегда очевиден, часто требуется потратить много
часов на отладку, для того чтобы найти их. Например, хотя приложение будет верно работать
при нормальных условиях, оно может вывести сообщение об ошибке, если будет введено
значение не того типа, которое требует какое-либо из полей ввода.
Ошибки времени выполнения происходят тогда, когда Access получает команду, которую он не
может выполнить, такую, как, например, деление на ноль. Когда Access наталкивается на ошибку
времени выполнения, программа останавливается и выводится диалоговое окно с сообщением,
описывающем ошибку.
В это время вы можете:
• Остановить выполнение программы.
• Продолжить выполнение, если вы разрешите проблемы в окне отладки.
• Просмотреть окно отладки, где в это время вы можете увидеть выделенной строчку,
которая привела к ошибке.
• Перейти прямо к строчке, которая вызвала ошибку.
• Вызвать Справку по данной ошибке.
Для чего перехватывать ошибки времени выполнения? Перехватывая ошибки времени
выполнения, вы делаете приложение более устойчивыми по отношению к типичным ошибкам, с
которыми оно может встретиться.
При этом:
• Создаются устойчивые приложения. Приложение, которое перехватывает ошибки
времени выполнения, может справиться со многими поль-зовательскими ошибками без
остановки приложения. Сделав приложение устойчивым по отношению к часто
встречающимся ошибкам, вы уменьшаете вероятность его полного развала в процессе
работы.
• Если приложению все же не удается обработать сложившуюся ошибочную ситуацию,
ваше приложение может тем не менее аккуратно закрыть все открытые файлы и тем
самым с большой долей вероятности сохранить их для дальнейшего использования.
Большая часть обработчиков ошибок имеет общую схему. Когда Access сталкивается с
ошибкой времени выполнения, он ищет выражение On Error Goto <<выражение>>. Если он
его находит, ошибка обрабатывается и выполнение продолжается либо с того же выражения, на
котором оно остановилось, либо с какого-нибудь другого.
Если Access не может найти выражение On Error Goto, выполнение процедуры
приостанавливается и Access выводит сообщение об ошибке времени выполнения, которое может
в какой-то степени удивить ваших пользователей.
Существует восемь стандартных функций и выражений для перехвата ошибок. Их описание
приведено в табл. 12.2.
Таблица 12.2. Основные программные функции отладки в Access
Выражение
или функция
Описание
On Error Goto Подключает обработчик ошибок и
указывает расположение обработчика
внутри процедуры. Может также
использоваться для отключения
обработчика ошибок
Err
(Выражение)
Устанавливает свойство Err в
указанное значение
Err (Функция)
Возвращает статус ошибки
Error
(Выражение)
Воспроизводит ошибку
Error
(Функция)
Возвращает сообщение об ошибке,
соответствующее указанному номеру
Resume Продолжает выполнение с
выражения, которое вызвало ошибку,
после того как обработчик ошибок
converted to PDF by HupBaH9I