Access 2002

Обработчик ошибок 


Если бы обработчик ошибок  12.3 выполнил запрос на создание таблицы, в результате которого была бы создана таблица tbl Table, то тогда можно было бы использовать оператор Resume, чтобы снова попытаться открыть таблицу. Однако имейте в виду, что, если причина ошибки не устранена, происходит зацикливание программы, при котором выполнение вызвавшего ошибку оператора опять и опять заканчивается аварийно. Эту форму оператора Resume нужно применять крайне осторожно. В большинстве случаев лучше вывести диалоговое окно, в котором пользователь сам сможет выбрать, продолжить выполнение процедуры или выйти из нее.

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

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

подобен оператору On Error Resume Next с той разницей, что он используется в блоке обработки ошибки.)

Оператор Resume Метка применяется тогда, когда требуется вернуть управление строке, отличной от той, где произошла ошибка. Оператор Resume Метка похож на оператор GoTo, за исключением того, что его можно использовать только внутри обработчика ошибок.  12.3 оператор Resume задействован для перехода к метке Exi tHere. Примененный в этом листинге подход — возвращение в завершающий блок процедуры после обработки ошибки выполнения — является более предпочтительным, так как в этом случае имеется только одна точка выхода из процедуры, и вы гарантируете, что будут выполнены все необходимые при этом действия (закрытие объектов, освобождение переменных и т. п.).

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