Если ошибка во время выполнения возникает в приложении VB6, означает ли это, что обработка ошибок отключена? - PullRequest
0 голосов
/ 11 мая 2010

Если во время выполнения приложения VB6 произошла ошибка, означает ли это, что обработка ошибок отключена с помощью оператора On Error Goto 0?

Можно ли сделать это предположение? Или есть другие обстоятельства, при которых может произойти ошибка времени выполнения?

Если ошибка была обработана либо Resume Next, либо Goto, то, безусловно, ошибка времени выполнения не будет . Правда или Ложь?

Ответы [ 2 ]

0 голосов
/ 12 мая 2010

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

  • Если возможно, используйте IDE VB6.
  • Если проблема не возникает при использовании IDE VB6 , используйте другой отладчик , например, бесплатную Visual Studio 2008 Express Edition.

В некоторых ситуациях может возникнуть ошибка. Например, вы могли бы выполнить строку кода, которая запускает событие, которое запускается и обрабатывается немедленно, и обработчик события может столкнуться с ошибкой (если обработчик события не имеет обработки ошибок). Также иногда ошибки времени выполнения VB6 могут отображаться при запуске вашего приложения перед выполнением любого вашего кода.

0 голосов
/ 11 мая 2010

Это происходит потому, что в исполняемом коде нет обработчика ошибок, включая вызывающие процедуры. Вы не можете сделать предположение, что 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 в точке ошибки, когда вы можете начать отладку или просто продолжить выполнение.

...