扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年10月2日
关键字:
在本页阅读全文(共2页)
六、 定制异常:CustomerNotFoundException
第一个定制异常类是CustomerNotFoundException。当你试图在你的数据库中查找一个客户但未找到相应的匹配时你会抛出这个异常。实现代码如下所示:
Public Class CustomerNotFoundException Inherits DatabaseException Private m_CustomerID As Long Public ReadOnly Property CustomerID() As Long Get Return m_CustomerID End Get End Property Public Sub New(ByVal customerID As Long) MyBase.New("Customer ID was not found.") m_CustomerID = customerID End Sub End Class |
这个类继承自你前面所创建的DatabaseException基类。它仅包含一个构造器--其参数为customerID。当调用这个构造器时,你把文本串"Customer ID was not found."传递到基类的构造器以用作Message属性。你还有一个已定义的只读属性CustomerID。你将使用这个CustomerID属性来存储要被作为一个参数传递的CustomerID的值。它是一个只读属性,因为把这个值改变为除了引发异常的值以外的值并没有什么意义。
七、 定制异常-DatabaseUnavailableException
第二个定制异常类是DatabaseUnavailableException。当你想连接到一个数据库并发生一个异常时,你就抛出这个异常。其实现代码如下:
Public Class DatabaseUnavailableException Inherits DatabaseException Public Sub New(ByVal ex As Exception) MyBase.New("The database is not available.", ex) End Sub End Class |
Private Sub ConnectDB(ByVal database As String, _ ByRef cn As OleDbConnection) cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; _ Data Source=" & _ """" & database & """" Try cn.Open() Catch ex As Exception Throw New DatabaseUnavailableException(ex) End Try End Sub |
Private Sub GetCustomerData(ByVal cn As OleDbConnection, _ ByVal customerID As Long) Dim cmd As New OleDbCommand Dim reader As OleDbDataReader cmd.Connection = cn cmd.CommandText = "SELECT * FROM CUSTOMER WHERE ID = " _ & customerID reader = cmd.ExecuteReader If reader.HasRows Then reader.Read() m_id = reader.Item("ID") m_firstname = reader.Item("Firstname") m_lastName = reader.Item("Lastname") m_street = reader.Item("Street") m_city = reader.Item("City") m_state = reader.Item("State") m_zipCode = reader.Item("Zip") Else Throw New CustomerNotFoundException(customerID) End If End Sub |
图1.成功的查询 图2.CustomerNotFoundException 图3.DatabaseUnavailableException |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者