本节提供有关 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()
方法。(Bug #48851)
特定的 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 错误分类”。