如何在表单中实现Try / Catch块

时间:2013-02-19 14:34:58

标签: vb.net

我为学生课程注册创建了一个表单,其中包含三个输入文本框:

  • 姓名
  • 电话号码
  • 地址

然后我有另一个文本框用于显示学生信息。我将这个仅显示文本框称为“课程”文本框。

我想在此表单上使用结构化异常处理(Try / Catch块)。我怎么能在这种形式上做到这一点。

2 个答案:

答案 0 :(得分:4)

使用Try / Catch

进行异常处理

VB.Net中的异常处理非常简单。以下代码是try / catch块的结构。

 Try
       'This is the code you wish to try that  might give an error.
    Catch ex As Exception
       'This is where you end up if an error occurs.
    End Try

假设您的表单上有一个按钮,并且您希望确保在按下按钮后,您所有的指令都将被错误处理。以下代码说明。首先删除一个按钮并将其命名为ValidationButton。如果双击新按钮,在后面的代码中将看到一个处理click事件的新函数。将try catch块添加到它中,如下所示。

Private Sub ValidationButton_Click(sender As System.Object, e As System.EventArgs) Handles ValidationButton.Click
    Try

    Catch ex As Exception

    End Try
End Sub

现在页面有一个按钮,其中的代码位于try / catch块中。我们只需将我们想要的代码放在里面。让我们放一些会抛出错误的东西,然后我们会显示那个错误。

示例代码

Private Sub ValidationButton_Click(sender As System.Object, e As System.EventArgs) Handles ValidationButton.Click
    Try
        Dim x As Integer = 1
        Dim y As Integer = 0
        Dim z As Integer = x / y
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

弹出一个消息框,告诉我们遇到错误,“算术运算导致溢出”。这是因为我们不能将其除以零。如果你没有把它放在try catch中,程序就会崩溃。

因此,有了这些信息,请将您的try / catch放在可能出错的地方。如果您知道您的错误可能是什么,您甚至可以在那里使用代码来执行其他操作。在我们的示例中,我们可能希望告诉用户不要除以零。

答案 1 :(得分:2)

除了捕获特定代码行中的错误外,您还可以捕获未处理的错误。通过Main Procedure

启动应用程序,这是最简单的方法
Module Program

    Public Shared Sub Main()
        AddHandler Application.ThreadException, AddressOf UIThreadException

        ' Force all Windows Forms errors to go through our handler.
        Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)

        ' Start the main Form
        Application.Run(New frmMain())
    End Sub

    Private Shared Sub UIThreadException(ByVal sender As Object, _
                                         ByVal t As ThreadExceptionEventArgs)
        ' Handle the error here
    End Sub

End Module

您可以在MSDN上阅读有关此主题的更多信息:Application.ThreadException Event