Поделиться через


Оператор Stop в Visual Basic

Оператор "Stop" в Visual Basic является программной альтернативой заданию точки останова.Когда отладчик встречает оператор "Stop", он прерывает выполнение программы (переходит в режим приостановки выполнения).Программисты C# могут добиться того же результата с помощью вызова System.Diagnostics.Debugger.Break.

Оператор "Stop" задается и удаляется путем редактирования исходного кода.В отличие от точки останова его невозможно задать или удалить с помощью команд отладчика.

В отличие от оператора "End" оператор "Stop" не сбрасывает значения переменных и не переводит приложение в режим разработки.Для продолжения выполнения приложения можно выбрать пункт "Продолжить" в меню "Отладка".

В случае запуска приложения Visual Basic вне отладчика оператор "Stop" запустит отладчик, если включена JIT–отладка.Если же JIT–отладка не включена, оператор "Stop" приведет к завершению работы приложения, как если бы это был оператор "End".При этом события "QueryUnload" и "Unload" не возникают, поэтому в выпускаемой версии приложения Visual Basic необходимо удалить все операторы "Stop".Дополнительные сведения см. в разделе JIT–отладка.

Чтобы избежать необходимости удаления операторов "Stop", можно использовать условную компиляцию:

#If DEBUG Then
   Stop
#Else
   ' Don't stop
#End If

Другой вариант — воспользоваться оператором "Assert" вместо оператора "Stop".Оператор "Debug.Assert" прерывает выполнение программы только в том случае, если не выполнено заданное условие, и автоматически удаляется при построении выпускаемой версии приложения.Дополнительные сведения см. в разделе Утверждения в управляемом коде.Если требуется, чтобы оператор "Assert" всегда прерывал выполнение программы в отладочной версии, его можно задать следующим образом:

Debug.Assert(false)

И еще один вариант — использовать метод Debug.Fail:

Debug.Fail("a clever output string goes here")

См. также

Основные понятия

Безопасность отладчика

Другие ресурсы

Подготовка к отладке: типы проектов C#, F# и Visual Basic

Отладка управляемого кода