我需要停止執行VB.net中的程序。在重複結構中,程序檢查變量是真是假。當變量爲false時,我需要停止程序執行。我不想關閉程序,只是停下來。我發現的一種方法是引發異常,但我不想將錯誤消息顯示給用戶。什麼是最好的方式來做到這一點?停止執行重複結構。 VB.NET
Do
If myvariable=false then
throw new exception... 'Silent exception
end if
Loop until ….
戴維斯
我需要停止執行VB.net中的程序。在重複結構中,程序檢查變量是真是假。當變量爲false時,我需要停止程序執行。我不想關閉程序,只是停下來。我發現的一種方法是引發異常,但我不想將錯誤消息顯示給用戶。什麼是最好的方式來做到這一點?停止執行重複結構。 VB.NET
Do
If myvariable=false then
throw new exception... 'Silent exception
end if
Loop until ….
戴維斯
編輯根據以下評論。
在這種情況下,我會使用類似的東西。
Do
If myvariable=false then
Return
end if
Loop until ….
我真的不知道你想要做什麼。
您可以通過使用Application.Exit()
通知所有消息泵必須終止關閉應用程序,然後關閉的消息後,所有應用程序窗口已被處理。
如果你想真的很突然,你可以撥打End
聲明。
Terminates execution immediately.
和
End語句停止執行代碼突然,並且不調用的Dispose或Finalize方法,或任何其他Visual Basic代碼。其他程序保存的對象引用無效。如果在Try或Catch塊中遇到End語句,則控件不會傳遞給相應的Finally塊。
您可以使用Stop
語句掛起執行,但它會調用調試器。
如果在運行在集成開發環境(IDE)之外的代碼中遇到Stop語句,則會調用調試器。無論代碼是以調試模式還是零售模式編譯,情況都是如此。
或者,如果你只是想離開你的Do
聲明瞭,你可以試試這個
Do
If myvariable=false then
Exit Do
end if
Loop until ….
我的應用程序正在等待來自另一個應用程序的api的響應,並且我的程序正在運行迭代,而api的函數返回不是所需的值。由於各種原因,我可能永遠無法獲得重複結構條件的預期回報。因此,如果用戶看到獲得預期的功能返回所需的時間太長,他可以單擊一個按鈕(「停止」),這會使程序退出重複結構並停止,而不繼續到後繼節點。我不希望程序退出,而只是停止直到用戶單擊一個按鈕重新開始。 –
@SammyDavis大多數結構都有退出它們的方式,就像我上面使用的Exit Do一樣。你可以使用的是'Exit Sub'或'Exit Function'或者簡單的'Return',這取決於你的結構所在的方法類型。 –
VB.NET特有的Stop關鍵字的替代方法是使用所有.NET語言都支持的靜態System.Diagnostics.Debugger.Break()方法。 –
您可以退出與退出語句循環。或者,您可以使用拋出異常的方法並將該環繞在Try/Catch塊中,該塊捕獲該特定異常並將其忽略。
Tks,我完成了最初的職位。再看一遍。 –
那麼拋出異常只是爲了抓住併吞下它呢? –
如果在循環退出後,您需要測試退出的原因,並根據退出是因爲進程已完成還是因爲用戶已取消而引發退出,並拋出UserCanceledException並不一定是一種不好的方法。 –
如果你真的想停止,那麼你可以使用Stop關鍵字。然而,我對你的問題沒有信心,這是你真正想要的,因爲它有不同的結果,取決於它是作爲exe運行還是在IDE中運行。
您的問題的一些更多的上下文將有助於找到問題的最佳答案。
你所說的「停止程序的執行」的意思是?在調試器中停止它?或者只是退出循環? –
我會投入回報是正確的答案。 –
@Yatrix:他比VB.NET好?那有什麼意思? VB.NET有一個'Return'關鍵字。 –