Это происходит потому, что в исполняемом коде нет обработчика ошибок, включая вызывающие процедуры. Вы не можете сделать предположение, что On Error Goto 0
был использован.
Я предполагаю, что вы имеете в виду необработанную ошибку во время выполнения. Поскольку оно не обработано, ваше приложение «ненормально заканчивается».
Концепции Visual Basic, иерархия обработки ошибок, http://msdn.microsoft.com/en-us/library/aa241677(VS.60).aspx
Если ошибка была обработана
Резюме Далее или Перейти, то, конечно,
Ошибка во время выполнения не произойдет. Правда
или Ложь?
Ложные. Иногда во время выполнения возникает ошибка в обработчике ошибок. Если ваша логика обработки ошибок пропустит это, вы получите необработанную ошибку времени выполнения.
Дополнительная информация
Вкратце, использование On Error Goto 0
удаляет любой обработчик ошибок (отключает или выключает) в процедуре до тех пор, пока процедура не завершится или вы не назначите обработчик ошибок с помощью одного из операторов On Error
. События пользовательского интерфейса без кода обработки ошибок также не будут иметь обработчика ошибок, пока вы его не определите.
Ошибка перехвата
Во время отладки вы можете указать «Перехват ошибок», который заставляет VBE разбивать «on-all-errors», «in-class-module» или «on-unhandled-errors». Во время выполнения поведение «При необработанных ошибках» (Ошибка времени выполнения произойдет, если библиотека времени выполнения Visual Basic не сможет найти обработчик ошибок.). Если вы устраняете неполадки / отлаживаете, попробуйте установить «Перехват ошибок» на «Сломать все ошибки». Это приведет к сбою VBE в точке ошибки, когда вы можете начать отладку или просто продолжить выполнение.