DB2異常狀況類別

資料庫傳回警告或錯誤時所產生的異常狀況。

名稱空間:
IBM.Data.DB2
組件:
IBM.Data.DB2 (在 IBM.Data.DB2.dll中)

.NET Framework 2.0 3.0、3.5 及 4.0 繼承階層


System.Object
   System.Exception
      System.SystemException
         System.Runtime.InteropServices.SystemException
            System.Data.Common.DbException
               IBM.Data.DB2.DB2Exception

.NET Framework 2.0 3.0、3.5 及 4.0 語法


[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®錯誤 實例。

如果錯誤的嚴重性太大,伺服器可以關閉 DB2連線 。 如果伺服器確實關閉連線,應用程式將需要開啟新的連線。

範例

[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 ) 成員對於多執行緒作業都是安全的。 不保證任何實例成員都是安全執行緒。