Access 2002

Значения свойств объекта


Этот метод, приведенный  12.7, копирует значения свойств объекта Err в свойства объекта SavedError. Полный код свойств и методов указанного класса вы найдете в модуле класса SavedError (в базе данных CH12.MDB).

Если вы заглянете в базу данных CH12.MDB, то увидите, что в дополнение к классу SavedError мы написали еще и класс-коллекция Saved Errors. Объявив новый экземпляр этого класса в разделе объявлений модуля, можно использовать его метод Add для добавления в коллекцию новых объектов SavedError. Это позволит вам собрать набор сохраненных ошибок и позднее исследовать их в своей программе.

Заметим, что если в процедуре имеются два различных оператора, которые могут вызывать ошибки времени выполнения, то, как правило, лучше написать обработчик ошибок и использовать оператор On Error GoTo Метка. Так надежнее, и код обработки ошибок выйдет более компактным. Если вы все же применяете оператор On Error Resume Next и объект Err, всегда используйте оператор Select Case с предложением Case Else для перехвата непредвиденных ошибок. Иначе такие ошибки будут игнорироваться, что может привести к непредсказуемым результатам.

В тех случаях, когда одна процедура вызывает другую, в VBA применяется иерархический метод обработки ошибок. Если вызываемая процедура генерирует ошибку, которая не обрабатывается внутри нее, то ошибка передается обработчику ошибок вызывающей процедуры. VBA действует так, как если бы сам вызов процедуры привел к возникновению ошибки. Он просматривает в обратном порядке стек вызовов до тех пор, пока не найдет обработчик ошибок. Если VBA

достигнет вершины стека и не найдет обработчика ошибок, он отобразит на экране свое собственное сообщение об ошибке и остановит выполнение программы.

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