Visual Basic:从不在Main模块中的类退出控制台应用程序

问题描述 投票:0回答:3

我在编写代码时遇到了一些麻烦,我想要退出控制台应用程序,如果它有错误(在try / catch中捕获)。如上所述,应用程序是一个控制台应用程序。这意味着System.Windows.Forms.Application不包含在参考中,我无法使用。

因此,如果我在主模块外部获取错误,在单独的类中,如何从该类中退出程序?

请记住我不能使用Application.Exit()所以请不要提供这个解决方案。

谢谢!

vb.net
3个回答
0
投票

我想你正在寻找Environment.Exit()


0
投票

Environment.Exit()会工作,但我认为更好的做法是重新抛出异常并让主模块再次捕获它并退出程序,或者如果你在异常处理程序中没有做任何其他事情,那么让异常冒泡首先是主要模块。


0
投票

所以我遇到了同样的问题,我必须做的是在一个单独的模块中创建一个函数,而不是使它成为子例程。

然后我通过测试返回“True”,如果没有通过测试则返回“False”。然后我在主模块中包含了以下代码。

Public Class Form1

    Private Sub GetScreenInfo_Click(sender As Object, e As EventArgs) Handles GetScreenInfo.Click

        Dim WeAreOnTheCorrectScreen As Boolean
        Dim ScreenText As String

        ScreenText = GetScreenText()

        WeAreOnTheCorrectScreen = CorrectScreenTextValidation(ScreenText)

        If WeAreOnTheCorrectScreen = False Then Exit Sub

    End Sub

End Class

最后,只是一个注释。 “GetScreenText()”和“CorrectScreenTextValidation()”是单独模块中的函数。

我没有包含他们的示例代码,因为我只是想传达一般想法来完成你想要做的事情。

最重要的是,答案是从函数返回一个值,然后使用一行“If”语句退出sub,如果需要的话。

If WeAreOnTheCorrectScreen = False Then Exit Sub
© www.soinside.com 2019 - 2024. All rights reserved.