Visual Basic 中的 Stop 语句
Visual Basic Stop 语句提供了一种以编程方式设置断点的替换方法。当调试器遇到 Stop 语句时,它将中断程序的执行(进入中断模式)。C# 程序员可通过调用 System.Diagnostics.Debugger.Break 达到同样的效果。
通过编辑源代码来设置或移除 Stop 语句。不能使用调试器命令设置或清除 Stop 语句,而对于断点却可以使用调试器命令。
不同于 End 语句,Stop 语句不重置变量或返回设计模式。可以从“调试”菜单中选择“继续”继续运行应用程序。
当在调试器外部运行 Visual Basic 应用程序时,如果启用了实时调试,Stop 语句将启动调试器。如果没有启用实时调试,Stop 语句的行为如同 End 语句,终止执行。没有发生 QueryUnload 或 Unload 事件,因此必须从 Visual Basic 应用程序的发布版本中移除所有的 Stop 语句。有关更多信息,请参见实时调试。
若要避免移除 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")