An Introduction to Object Oriented Database Development with VB.NET 2005 - Expanding the class to handle errors
(Page 4 of 5 )
Any application must include error handling. If you do not include error handling, the application may get terminated abnormally when a run-time error occurs. Run-time errors are a bit hard to detect and identify; it requires some experience. Some types of run-time errors include database connectivity errors, row/table not found errors, network errors, data type conversion errors, and so forth.
The above class (and application) currently does not include any errors. To handle the errors, we need to work with “exception handling.” We trap run-time errors using exception handling and provide our own alternative to run our application smoothly. We do this by giving proper, understandable messages to the user, without any abnormal termination.
The method “load” in the class “emp” can be rewritten as follows to include exception handling:
Public Sub load(ByVal empno As String)
Dim cn As New SqlConnection("Data Source=.sql2k5;initial catalog=sample;user id=sa;password=eXpress2005")
Dim cmd As New SqlCommand("select * from sample.dbo.emp where empno='" & empno & "'", cn)
Try
m_empno = empno
cmd.Connection.Open()
Dim rd As SqlDataReader = cmd.ExecuteReader
If rd.Read() Then
m_ename = rd("ename")
m_sal = rd("sal")
m_deptno = rd("deptno")
Else
Throw New Exception("Employee not found")
End If
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
If cmd.Connection.State = ConnectionState.Open Then
cmd.Connection.Close()
End If
cmd.Dispose()
cn.Dispose()
End Try
End Sub
If any error occurs in the above method "load," it will be thrown back to the calling program (in this case, it is the application itself). So, we need to handle the exceptions thrown to the main application as follows:
PrivateSub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Me.lblErrMsg.Text = ""
Try
Dim ep As New Emp
ep.load(Me.txtEmpno.Text)
Me.txtDeptno.Text = ep.m_deptno
Me.txtEname.Text = ep.m_ename
Me.txtSal.Text = ep.m_sal
Catch ex As Exception
Me.lblErrMsg.Text = ex.Message
End Try
End Sub
Next: Further expanding the class to handle additional rows >>
More Visual Basic.NET Articles
More By Jagadish Chaterjee