Access 2002

Оператор On Error Resume Next


После возникновения ошибки времени выполнения и передачи управления обработчику ошибок программа находится в особом состоянии, для которого справедливо следующее.

Обработчик ошибок, активизированный в операторе On Error Goto Метка, больше не действует. Это означает, что если в самом обработчике ошибок произойдет ошибка времени выполнения, то реакция на нее будет такой, как будто в процедуре вообще нет обработчика ошибок.

Чтобы передать управление назад в основную процедуру и возобновить нормальную обработку ошибок, можно использовать оператор Resume (он описывается ниже в настоящей главе в разделе «Оператор Resume»-).

Создание обработчика ошибок с помощью оператора On Error GoTo Метка может потребовать значительного количества операторов. Иногда необходимо просто игнорировать ошибки — если вы точно знаете, какую ошибку ждете, в этом случае нет надобности писать полный обработчик всех возможных ошибок. Оператор On Error Resume Next информирует VBA о том, что вы хотите без вмешательства VBA передать управление оператору, который следует непосредственно за оператором, вызвавшим ошибку. В результате VBA «игнорирует» ошибку. Процедура, код которой приведен  12.2, изменяет свойство BackColor всех элементов управления формы, ссылка на которую передана ей в качестве аргумента frm. Она «перекрашивает» все эти элементы управления в цвет, заданный аргументом IngColor. У некоторых элементов управления, таких как управляющие кнопки, свойство BackColor отсутствует. При обращении к таким элементам генерируется ошибка времени выполнения. Оператор On Error Resume Next заставляет программу игнорировать ошибку и продолжать выполнение. Более подробно оператор On Error Resume Next рассматривается ниже в настоящей главе в разделе «Упрощенная обработка ошибок».

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