3

下面是我想使用 try catch 和 finally 阻塞的代码但是我不能这样做,我是编程新手,请帮助我在 vb.net 的下面代码中介绍 try catch 和 finally 阻塞,另外帮助为 finally 块编码,我将在其中检查连接是否打开,我连接是打开的,那么它应该在 finally 块中关闭,但在检查之后。如果

条件..

else
    'Try
        con.Open()
        adp = New OleDbDataAdapter("select * from Login ", con)

        adp.Fill(dt, "Login")
        Dim i As Integer
        For i = 0 To dt.Tables(0).Rows.Count - 1
            If (cbType.Text = dt.Tables(0).Rows(i).Item(1) And txtUname.Text = dt.Tables(0).Rows(i).Item(2) And txtPass.Text = dt.Tables(0).Rows(i).Item(3)) Then

                MDIParent1.Show()


                Exit Sub


            End If
            '                Catch ex As Exception


        Next

        MsgBox("You Are Not A Valid User!!", MsgBoxStyle.Information)
    End If
4

1 回答 1

12

这很简单。

只需查看下面的代码。

Try

    'In this block your program will try to execute your code.
    'If it catches any runtime error it will go to the Catch Block straight away without executing the next code in your Try Block.
    'If there are no errors then Finally Block will be executed after Try Block. Catch Block will be skipped.

Catch

    'It will display the errors here.
    'So you can use Catch ex as exception.
    'If you want to see the errors in Messagebox you can write the below line.
    'MessageBox.Show(ex.Message)

Finally

    'If your program finds errors or not this block will be executed always.

End Try

因此,您可以在代码中使用 Try...Catch,如下所示:

Dim ValidUser as Boolean = False

Try
        con.Open()
        adp = New OleDbDataAdapter("select * from Login ", con)

        adp.Fill(dt, "Login")
        Dim i As Integer

        For i = 0 To dt.Tables(0).Rows.Count - 1
            If (cbType.Text = dt.Tables(0).Rows(i).Item(1) And txtUname.Text = dt.Tables(0).Rows(i).Item(2) And txtPass.Text = dt.Tables(0).Rows(i).Item(3)) Then

                ValidUser = true


                Exit For


            End If

        Next

        If ValidUser = True
             MDIParent1.Show()
        Else
             MsgBox("You Are Not A Valid User!!", MsgBoxStyle.Information)
        End If

Catch ex As Exception

    MessageBox.Show(ex.Message)

Finally

    if con.State = ConnectionState.Open then
        con.close()
    End If

    ValidUser = False

End Try
于 2013-05-29T20:34:48.790 回答