此部分提供有关
NdbError
数据结构的信息,其中包含有关错误的状态和其他信息,包括错误代码、分类和消息。
- 描述
-
一个
NdbError
由六个部分组成,列在此处,其中一个已弃用:-
错误状态:描述了错误对应用的影响,反映了应用遇到错误时应该做什么。
错误状态由
Status
类型的值描述。请参阅 NdbError::Status,了解可能的Status
值以及应如何解释它们。 -
错误分类由
Classification
类型的值描述。请参阅 NdbError::Classification,了解可能的分类及其解释。其他信息在 第 2.4.4 节“NDB 错误分类”中提供。 -
错误代码:这是唯一标识错误的 NDB API 内部错误代码。
重要的不建议编写依赖特定错误代码的应用程序。相反,应用程序应该检查错误状态和分类。还可以通过检查错误消息和(如果可用)错误详细消息来获取有关错误的更多信息。但是,与错误代码一样,这些错误消息和错误详细消息可能会发生变化。
第 2.4.2 节“NDB 错误代码:按类型” 中提供了按分类细分的当前错误代码列表 。此列表随新的 NDB Cluster 版本更新。您还可以检查
storage/ndb/src/ndbapi/ndberror.c
NDB Cluster 源中的文件。 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()
方法。(漏洞 #48851)
- 类型
-
NdbError
定义此处列出的两种数据类型:Classification
:错误的类型或错误所属的逻辑分组。Status
: 错误状态。
本节提供有关
Classification
数据类型的信息。
- 描述
这种类型描述了错误的类型,或者它所属的逻辑组。
- 枚举值
-
下表显示了可能的值以及说明:
表 2.39 NdbError 分类数据类型值和描述
姓名 描述 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.40 NdbError Status 数据类型值和描述
姓名 描述 Success
没有发生错误 TemporaryError
暂时的且通常可恢复的错误;应用程序应该重试导致错误的操作 PermanentError
永久错误;无法恢复 UnknownResult
操作的结果或状态未知 可以在第 2.4.4 节“NDB 错误分类”中找到特定于某些错误条件的相关信息。