本節提供有關 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不知道交易是否已認可。 InternalErrorNDB本身發生嚴重錯誤。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 錯誤分類」。