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 版本更新。您还可以检查 storage/ndb/src/ndbapi/ndberror.c NDB Cluster 源中的文件。

  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() 方法。(漏洞 #48851)

类型

NdbError定义此处列出的两种数据类型:

NdbError::分类

本节提供有关 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 错误分类”中找到。

NdbError::状态

本节提供有关 Status数据类型的信息。

描述

此类型用于描述错误的状态。

枚举值

下表显示了可能的值以及说明:

表 2.40 NdbError Status 数据类型值和描述

姓名 描述
Success 没有发生错误
TemporaryError 暂时的且通常可恢复的错误;应用程序应该重试导致错误的操作
PermanentError 永久错误;无法恢复
UnknownResult 操作的结果或状态未知

可以在第 2.4.4 节“NDB 错误分类”中找到特定于某些错误条件的相关信息。