Visual Basic 中的 Stop 陳述式
Visual Basic 的 Stop 陳述式提供了設定中斷點的程式設計替代方式。 當偵錯工具碰到 Stop 陳述式時,它會中斷程式的執行 (進入中斷模式)。 C# 程式設計人員使用 System.Diagnostics.Debugger.Break 的呼叫,可以達到相同的效果。
您可編輯原始程式碼來設定或移除 Stop 陳述式。 您無法像處理中斷點一樣,使用偵錯工具的命令來設定或清除 Stop 陳述式。
不同於 End 陳述式,Stop 陳述式並不會重設變數,或帶您返回設計模式。 您可選擇 [偵錯] 功能表內的 [繼續] 來繼續執行應用程式。
當您在偵錯工具外執行 Visual Basic 應用程式時,如果啟用 Just-in-Time 偵錯,Stop 陳述式將啟動偵錯工具。 如果並未啟用 Just-in-Time 偵錯,Stop 陳述式的行為就好像 End 陳述式一樣,將會終止執行。 不會發生 QueryUnload 或 Unload 事件,因此您必須從 Visual Basic 應用程式的發行版本 (Release Version) 中移除所有的 Stop 陳述式。 如需詳細資訊,請參閱 Just-In-Time 偵錯。
若要省略移除 Stop 陳述式的需要,您可使用條件式編譯:
#If DEBUG Then
Stop
#Else
' Don't stop
#End If
另一個替代方式為使用 Assert 陳述式,而非 Stop 陳述式。 Debug.Assert 陳述式只會在指定的條件不符合時才中斷執行,並在您建置發行版本時自動移除。 如需詳細資訊,請參閱 Managed 程式碼中的判斷提示。 如果您希望 Assert 陳述式一直都中斷偵錯版本的執行,就可加入下列程式碼:
Debug.Assert(false)
另一個替代方式為使用 Debug.Fail 方法:
Debug.Fail("a clever output string goes here")