Учебник по Visual Basic 5.0


Таблица 1 - часть 3



    Команды Resume и Resume Next ведут себя по-разному при возврате назад в том случае, когда ошибка произошла в другой процедуре. Вспомним, что такое имеет место, когда одна процедура вызывается из другой и в ней отсутствует фрагмент по обработке ошибок: В обоих случаях Visual Basic не переходит к исходной процедуре. В случае оператора Resume происходит повторный вызов процедуры. В случае Resume Next Visual Basic начинает выполнять программу с первого (после вызова процедуры) оператора. То есть не происходит возврата к исходной процедуре.


    Предположим, что цепочка взаимосвязанных процедур удлинилась: Процедура1 вызывает Процедуру2, а та, в свою очередь, ФункциюЗ. Допустим, что ошибка происходит в момент выполнения ФункцииЗ, но обработчик ошибок есть только у Процедуры1. Если в данном фрагменте присутствует оператор Resume, то Visual Basic переходит к оператору, вызывающему Процедуру2. Поскольку такой подход на самом деле очень громоздкий, то лучше всегда полагаться только на обработчики ошибок, находящиеся в текущей процедуре. Если одна процедура вызывает другую, то у нее необходимо отключить фрагмент по обработке ошибок.


Существует еще одна функция для обработки ошибок, Erl (Error Line). Если программист отчаялся найти строку, в которой возникает ошибка, a Visual Basic не останавливается на данной строке, нужно проделать следующее:

  • Добавить номера строк перед каждым оператором в процедуре.

  • Добавить оператор Debug.Print Eri в фрагмент по обработке ошибок.

    При разработке программ часто необходимо протестировать функционирование обработчика ошибок. Visual Basic включает в себя оператор

Error (номер кода ошибки)

который заставляет Visual Basic срабатывать так, как будто произошла ошибка с указанным номером. Это облегчает процесс отладки перехвата ошибок.


Если программист уверен в том, что программа более не нуждается в обработчике ошибок, он может отключить его при помощи оператора

On Error GoTo 0

(хотя значение 0 в общем-то не очень и необходимо). Похожим образом можно изменить ссылку на другой обработчик ошибок, используя другой оператор On Error GoTo. Необходимо убедиться, что между обработчиками ошибок присутствует оператор Exit. Visual Basic использует последний оператор On Error GoTo для того, чтобы решить, куда двигаться далее.




Начало  Назад  Вперед



Книжный магазин