本節提供有關 NdbError
資料結構的資訊,其中包含有關錯誤的狀態和其他資訊,包括錯誤代碼、分類和訊息。
- 說明
-
NdbError
由六個部分組成,此處列出,其中一個已淘汰-
錯誤狀態:這說明錯誤對應用程式的影響,並反映應用程式在遇到錯誤時應執行的動作。
錯誤狀態由
Status
類型的值描述。請參閱 NdbError::Status,以取得可能的Status
值及其應如何解讀。 -
錯誤分類由
Classification
類型的值描述。請參閱 NdbError::Classification,以取得可能的分類及其解讀。其他資訊請參閱 第 2.4.4 節「NDB 錯誤分類」。 -
錯誤代碼:這是 NDB API 內部錯誤代碼,可唯一識別錯誤。
重要建議不要編寫依賴特定錯誤代碼的應用程式。相反地,應用程式應檢查錯誤狀態和分類。也可以透過檢查錯誤訊息和(在可用時)錯誤詳細訊息取得有關錯誤的更多資訊。但是,與錯誤代碼一樣,這些錯誤訊息和錯誤詳細訊息可能會變更。
目前依分類細分的錯誤代碼列表,請參閱 第 2.4.2 節「NDB 錯誤代碼:依類型」。此列表會隨著新的 NDB Cluster 版本更新。您也可以在 NDB Cluster 來源中檢查
storage/ndb/src/ndbapi/ndberror.c
檔案。 MySQL 錯誤代碼:這是對應的 MySQL 伺服器錯誤代碼。本文件中未討論 MySQL 錯誤代碼;請參閱 MySQL 手冊中的 伺服器錯誤訊息參考,以取得相關資訊。
-
錯誤詳細資料:這通常可以提供關於錯誤的其他資訊(在錯誤訊息中找不到),這些資訊特定於遇到錯誤的情況。但是,並非所有情況都可取得。
在未指定的情況下,錯誤詳細訊息為
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
定義此處列出的兩個資料類型Classification
:錯誤類型或錯誤所屬的邏輯分組。Status
:錯誤狀態。
本節提供有關 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 錯誤分類」。
本節提供有關 Status
資料類型的資訊。
- 說明
此類型用於描述錯誤的狀態。
- 列舉值
-
下表中顯示可能的值以及說明
表 2.41 NdbError Status 資料類型值和說明
名稱 說明 Success
未發生錯誤 TemporaryError
暫時性且通常可復原的錯誤;應用程式應重試引發錯誤的操作 PermanentError
永久性錯誤;不可復原 UnknownResult
操作的結果或狀態不明 關於特定錯誤情況的相關資訊,請參閱第 2.4.4 節「NDB 錯誤分類」。