【问题标题】:Stop execution in repetion structure. VB.NET在重复结构中停止执行。 VB.NET
【发布时间】:2012-05-11 10:49:28
【问题描述】:

我需要停止执行 VB.net 中的程序。在重复结构中,程序检查变量是真还是假。当变量为假时,我需要停止程序执行。我不想关闭程序而只是停止它。我发现的一种方法是引发异常,但我不想向用户显示错误消息。最好的方法是什么?

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

戴维斯

【问题讨论】:

  • “停止程序执行”是什么意思?在调试器中停止它?还是直接退出循环?
  • 我会在 Return 是正确的答案上付钱。
  • @Yatrix:他比 VB.NET 更好?那有什么意思? VB.NET 有一个Return 关键字。
  • 哎呀!删除评论以避免进一步的尴尬。最近一直在 C#ing =]

标签: vb.net exception message execution


【解决方案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 ….  

【讨论】:

  • 我的应用程序正在等待来自另一个应用程序的 api 的响应,并且我的程序正在运行迭代,而 api 的函数的返回不是所需的值。由于各种原因,可能是我永远不会得到预期回报的重复结构的条件。因此,如果用户发现获得预期的函数返回需要很长时间,他可以单击一个按钮(“停止”),这将使程序退出重复结构并停止而不继续执行后续的子程序。我不希望程序退出,而只是停止,直到用户单击按钮重新开始。
  • @SammyDavis 大多数结构都有退出它们的方法,就像我上面使用的Exit Do。您可以使用Exit SubExit Function 或简单的Return,具体取决于您的结构所在的方法类型。
  • VB.NET 特有的 Stop 关键字的替代方法是使用所有 .NET 语言都支持的静态 System.Diagnostics.Debugger.Break() 方法。
【解决方案2】:

您可以使用 exit 语句退出循环。或者,您可以使用引发异常的方法并将循环包围在 Try/Catch 块中,该块捕获该特定异常并忽略它。

【讨论】:

  • 谢谢,我完成了最初的帖子。再看一遍。
  • 抛出异常只是为了捕获并吞下它有什么意义呢?
  • 如果,在循环退出后,您需要测试它退出的原因并根据它是因为进程完成还是因为用户取消而退出,那么抛出 UserCanceledException 不一定是坏事方法来做到这一点。
【解决方案3】:

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

为您的问题提供更多背景信息将有助于为您的问题找到最佳答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多