文件首頁
MySQL NDB Cluster API 開發人員指南
相關文件 下載本手冊
PDF (US Ltr) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.15 NdbError 結構

本節提供有關 NdbError 資料結構的資訊,其中包含有關錯誤的狀態和其他資訊,包括錯誤代碼、分類和訊息。

NdbError 概觀

說明

NdbError 由六個部分組成,此處列出,其中一個已淘汰

  1. 錯誤狀態:這說明錯誤對應用程式的影響,並反映應用程式在遇到錯誤時應執行的動作。

    錯誤狀態由 Status 類型的值描述。請參閱 NdbError::Status,以取得可能的 Status 值及其應如何解讀。

  2. 錯誤分類:這代表邏輯錯誤類型或分組。

    錯誤分類由 Classification 類型的值描述。請參閱 NdbError::Classification,以取得可能的分類及其解讀。其他資訊請參閱 第 2.4.4 節「NDB 錯誤分類」

  3. 錯誤代碼:這是 NDB API 內部錯誤代碼,可唯一識別錯誤。

    重要

    建議不要編寫依賴特定錯誤代碼的應用程式。相反地,應用程式應檢查錯誤狀態和分類。也可以透過檢查錯誤訊息和(在可用時)錯誤詳細訊息取得有關錯誤的更多資訊。但是,與錯誤代碼一樣,這些錯誤訊息和錯誤詳細訊息可能會變更。

    目前依分類細分的錯誤代碼列表,請參閱 第 2.4.2 節「NDB 錯誤代碼:依類型」。此列表會隨著新的 NDB Cluster 版本更新。您也可以在 NDB Cluster 來源中檢查 storage/ndb/src/ndbapi/ndberror.c 檔案。

  4. MySQL 錯誤代碼:這是對應的 MySQL 伺服器錯誤代碼。本文件中未討論 MySQL 錯誤代碼;請參閱 MySQL 手冊中的 伺服器錯誤訊息參考,以取得相關資訊。

  5. 錯誤訊息:這是錯誤的通用、不依賴內容的描述。

  6. 錯誤詳細資料:這通常可以提供關於錯誤的其他資訊(在錯誤訊息中找不到),這些資訊特定於遇到錯誤的情況。但是,並非所有情況都可取得。

    在未指定的情況下,錯誤詳細訊息為 NULL

    注意

    此屬性已淘汰,並計劃最終移除。為了取得錯誤詳細資料,您應該改用 Ndb::getNdbErrorDetail() 方法。

特定的 NDB API 錯誤代碼、訊息和詳細訊息可能會在不另行通知的情況下變更。

定義

NdbError 結構包含以下成員,其類型如下所示

  • Status status:錯誤狀態。

  • Classification classification:錯誤類型(分類)。

  • int code:NDB API 錯誤代碼。

  • int mysql_code:MySQL 錯誤代碼。

  • const char* message:錯誤訊息。

  • char* details:錯誤詳細訊息。

    details 已淘汰,並計劃最終移除。您應該改用 Ndb::getNdbErrorDetail() 方法。(Bug #48851)

類型

NdbError 定義此處列出的兩個資料類型

NdbError::Classification

本節提供有關 Classification 資料類型的資訊。

說明

此類型描述錯誤類型或錯誤所屬的邏輯群組。

列舉值

下表中顯示可能的值以及說明

表 2.40 NdbError Classification 資料類型值和說明

名稱 說明
NoError 表示成功(未發生錯誤)
ApplicationError 應用程式程式中發生錯誤
NoDataFound 由於遺失一或多個記錄,讀取作業失敗。
ConstraintViolation 發生約束違規,例如嘗試插入具有目標表格中已在使用之主索引鍵值的元組。
SchemaError 嘗試建立或使用表格時發生錯誤。
InsufficientSpace 資料或索引的記憶體不足。
TemporaryResourceError 當作用中的交易過多時,通常會遇到這種類型的錯誤。
NodeRecoveryError 這是一種暫時性的失敗,可能是因為節點復原正在進行中而導致,例如在應用程式和 NDB 之間傳送的資訊遺失,或發生散佈變更時。
OverloadError 當記錄檔空間不足時,通常會導致這種類型的錯誤。
TimeoutExpired 逾時,通常由死結所造成。
UnknownResultError 不知道交易是否已認可。
InternalError NDB 本身發生嚴重錯誤。
FunctionNotImplemented 應用程式嘗試使用尚未實作的功能。
UnknownErrorCode NDB 錯誤處理常式無法判斷要回報的正確錯誤代碼時,就會看到此情況。
NodeShutdown 這是由節點關閉所導致。
SchemaObjectExists 應用程式嘗試建立已存在的結構描述物件。
InternalTemporary 要求已傳送至主要節點以外的節點。

特定於某些錯誤條件的相關資訊,請參閱 第 2.4.2 節「NDB 錯誤代碼:依類型」,以及 第 2.4.4 節「NDB 錯誤分類」

NdbError::Status

本節提供有關 Status 資料類型的資訊。

說明

此類型用於描述錯誤的狀態。

列舉值

下表中顯示可能的值以及說明

表 2.41 NdbError Status 資料類型值和說明

名稱 說明
Success 未發生錯誤
TemporaryError 暫時性且通常可復原的錯誤;應用程式應重試引發錯誤的操作
PermanentError 永久性錯誤;不可復原
UnknownResult 操作的結果或狀態不明

關於特定錯誤情況的相關資訊,請參閱第 2.4.4 節「NDB 錯誤分類」