数据库返回警告或错误时生成的异常。
System.Object
System.Exception
System.SystemException
System.Runtime.InteropServices.SystemException
System.Data.Common.DbException
IBM.Data.DB2.DB2Exception
[Visual Basic]
<Serializable>
NotInheritable Public Class DB2Exception
Inherits DbException
[C#]
[Serializable]
public sealed class DB2Exception : DbException
[C++]
[Serializable]
public __gc __sealed class DB2Exception : public DbException
[JScript]
public
Serializable
class DB2Exception extends DbException
每次数据库服务器生成错误(引发客户端错误作为标准公共语言运行时异常)时,都会 创建此类。它始终包含 DB2®Error 的一个或多个实例。
如果错误太严重,那么服务器会关闭 DB2Connection。如果服务器关闭了连接,那么应用程序将需要打开新的连接。
[Visual Basic, C#] 以下示例由于缺少数据库而生成 DB2Exception,然后显示该异常。
[Visual Basic]
Public Sub ThrowDB2Exception()
Dim mySelectQuery As String = "SELECT column1 FROM table1"
Dim myConnection As New DB2Connection _
("DATABASE=BADDB;")
Dim myCommand As New DB2Command(mySelectQuery, myConnection)
Try
myCommand.Connection.Open()
Catch myException As DB2Exception
Dim i As Integer
For i = 0 To myException.Errors.Count - 1
MessageBox.Show("Index #" + i.ToString() + ControlChars.Cr _
+ "Message: " + myException.Errors(i).Message + ControlChars.Cr _
+ "Native: " + myException.Errors(i).NativeError.ToString() + ControlChars.Cr _
+ "Source: " + myException.Errors(i).Source + ControlChars.Cr _
+ "SQL: " + myException.Errors(i).SQLState + ControlChars.Cr)
Next i
End Try
End Sub
[C#]
public void ThrowDB2Exception()
{
string mySelectQuery = "SELECT column1 FROM table1";
DB2Connection myConnection =
new DB2Connection("DATABASE=BADDB;");
DB2Command myCommand = new DB2Command(mySelectQuery,myConnection);
try
{
myCommand.Connection.Open();
}
catch (DB2Exception myException)
{
for (int i=0; i < myException.Errors.Count; i++)
{
MessageBox.Show("Index #" + i + "\n" +
"Message: " + myException.Errors[i].Message + "\n" +
"Native: " + myException.Errors[i].NativeError.ToString() + "\n" +
"Source: " + myException.Errors[i].Source + "\n" +
"SQL: " + myException.Errors[i].SQLState + "\n");
}
}
}
此类型的任何公用静态(Visual Basic 中的 Shared)成员对于多线程操作都是安全的。 不保证任何实例成员均为线程安全。