2012-05-11 32 views
-3

我需要停止执行VB.net中的程序。在重复结构中,程序检查变量是真是假。当变量为false时,我需要停止程序执行。我不想关闭程序,只是停下来。我发现的一种方法是引发异常,但我不想将错误消息显示给用户。什么是最好的方式来做到这一点?停止执行重复结构。 VB.NET

Do 
    If myvariable=false then 
    throw new exception... 'Silent exception 
    end if 
Loop until …. 

戴维斯

+1

你所说的“停止程序的执行”的意思是?在调试器中停止它?或者只是退出循环? –

+0

我会投入回报是正确的答案。 –

+0

@Yatrix:他比VB.NET好?那有什么意思? VB.NET有一个'Return'关键字。 –

回答

1

编辑根据以下评论。

在这种情况下,我会使用类似的东西。

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 …. 
+0

我的应用程序正在等待来自另一个应用程序的api的响应,并且我的程序正在运行迭代,而api的函数返回不是所需的值。由于各种原因,我可能永远无法获得重复结构条件的预期回报。因此,如果用户看到获得预期的功能返回所需的时间太长,他可以单击一个按钮(“停止”),这会使程序退出重复结构并停止,而不继续到后继节点。我不希望程序退出,而只是停止直到用户单击一个按钮重新开始。 –

+0

@SammyDavis大多数结构都有退出它们的方式,就像我上面使用的Exit Do一样。你可以使用的是'Exit Sub'或'Exit Function'或者简单的'Return',这取决于你的结构所在的方法类型。 –

+0

VB.NET特有的Stop关键字的替代方法是使用所有.NET语言都支持的静态System.Diagnostics.Debugger.Break()方法。 –

0

您可以退出与退出语句循环。或者,您可以使用抛出异常的方法并将该环绕在Try/Catch块中,该块捕获该特定异常并将其忽略。

+0

Tks,我完成了最初的职位。再看一遍。 –

+0

那么抛出异常只是为了抓住并吞下它呢? –

+0

如果在循环退出后,您需要测试退出的原因,并根据退出是因为进程已完成还是因为用户已取消而引发退出,并抛出UserCanceledException并不一定是一种不好的方法。 –

0

如果你真的想停止,那么你可以使用Stop关键字。然而,我对你的问题没有信心,这是你真正想要的,因为它有不同的结果,取决于它是作为exe运行还是在IDE中运行。

您的问题的一些更多的上下文将有助于找到问题的最佳答案。