我需要停止执行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'关键字。 –