1

我在 lambda 中使用RDSDataService在 Aurora Serverless DB 中执行查询。当一切运行正常时一切都很好,但是当运行查询时出现错误时,我会得到这样的东西

调用 ExecuteStatement 操作时发生错误 (BadRequestException):错误:重复键值违反唯一约束“user_role_role_name_key”详细信息:键 (role_name)=(Test3) 已存在。

我正在使用通用的 exceptException as e然后打印e

问题:

  1. 我需要导入什么包来捕获 BadRequestException
  2. 我将如何解析它以提取细节部分?
4

1 回答 1

1

AWS 确认在使用 Postgresql 时无法正确解析数据 API 异常的详细信息(有关更新,请参阅此 github 问题)。

如果使用 Aurora 的 MySQL 版本,则该aurora-data-api包有效地返回更好的异常格式,因为可以解析 SQLSTATE 代码。我们可以在这个内部函数中看到解析的不同。


目前,使用 Data API 从 Postgresql Aurora DB 解析异常的唯一方法是使用如下字符串比较:

if errorMessage.contains('a known substring of a specific exception message'):
   # Here we "know" the exception type
于 2021-02-19T18:08:33.493 回答