

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Neptune openCypher 异常
<a name="access-graph-opencypher-exceptions"></a>

在 Amazon Neptune 上使用 openCypher 时，可能会出现各种异常。以下是您可能从 HTTPS 端点或 Bolt 驱动程序收到的常见异常（来自 Bolt 驱动程序的所有异常都报告为服务器状态异常）。如果补救措施是重试请求，请参见[异常处理和重试](transactions-exceptions.md)有关制定有效重试策略的指导。


| HTTP 代码 | 错误消息 | 是否可检索？ | 补救措施 | 
| --- | --- | --- | --- | 
| 400 | *（语法错误，直接从 openCypher 解析器传播）* | 否 | 请更正查询语法，然后重试。 | 
| 500 | `Operation terminated (out of memory)` | 是 | 重新处理查询以添加其它筛选条件来减少所需的内存 | 
| 500 | 操作已终止（超过截止日期） | 是 | 增加数据库集群参数组中的查询超时，或者重试请求。 | 
| 500 | 操作已终止（被用户取消） | 是 | 重试请求。 | 
| 500 | 数据库重置正在进行中。请在集群可用后重试查询。 | 是 | 重置完成后重试。 | 
| 500 | 由于并发操作冲突，操作失败（请重试）。事务目前正在回滚。 | 是 | 重试请求。 | 
| 400 | {{(operation name)}} operation/feature 不支持的异常 | 否 | 不支持指定的操作。 | 
| 400 | 已尝试在只读副本上更新 openCypher | 否 | 将目标端点更改为写入器端点。 | 
| 400 | MalformedQueryException （海王星不显示内部解析器状态） | 否 | 请更正查询语法并重试。 | 
| 400 | 无法删除节点，因为它仍然具有关系。要删除此节点，必须先删除其关系。 | 否 | 不使用 `MATCH (n) DELETE n`，而是使用 `MATCH(n) DETACH DELETE(n)` | 
| 400 | 操作无效：正在尝试移除节点的最后一个标签。节点必须具有至少一个标签。 | 否 | Neptune 要求所有节点至少有一个标签，如果创建的节点没有显式标签，则会分配默认标签 `vertex`。更改查询 and/or 应用程序逻辑，以免删除最后一个标签。可以通过设置新标签然后删除旧标签，更新节点的单例标签。 | 
| 500 | 已违规的最大请求数，connID ConfiguredQueueCapacity = {} = {} | 是 | 目前，无论堆栈和协议如何，只能处理 8192 个并发请求。 | 
| 500 | 突破最大连接限制。 | 是 | 每个实例只允许 1000 个并发 Bolt 连接（对于 HTTP 没有限制）。 | 
| 400 | 应为 [节点、关系或路径之一]，而得到的是文本 | 否 | 请检查您传递的参数是否正确，查询语法是否正确，然后重试。 | 
| 400 | 属性值必须是简单的文本。或：需要 Set 属性的映射，但找不到。 | 否 | SET 子句只接受简单文本，不接受复合类型。 | 
| 400 | 找不到已传递的供删除的实体 | 否 | 检查数据库中是否存在您尝试删除的实体。 | 
| 400 | 用户无权访问数据库。 | 否 | 查看有关正在使用的 IAM 角色的策略。 | 
| 400 | 没有作为请求的一部分传递的令牌 | 否 | 在启用 IAM 的集群上，必须将经过正确签名的令牌作为查询请求的一部分传递。 | 
| 400 | 错误消息已传播。 | 否 | 使用请求编号联系 Amazon 支持部门。 | 
| 500 | 操作已终止（内部错误） | 是 | 使用请求编号联系 Amazon 支持部门。 | 