我正在尝试将一些数据插入到 dynamodb 中,正如预期的那样,我得到了一个 ConditionalCheckFailedException
。因此,我试图仅针对该场景捕获该异常,除此之外,我想为所有其他错误抛出服务器错误。
但是要添加类型,我无法在 aws-sdk 中找到 ConditionalCheckFailedException
。
这就是我想要做的。
// where to import this from
try {
await AWS.putItem(params).promise()
} catch (e) {
if (e instanceof ConditionalCheckFailedException) { // unable to find this exception type in AWS SDK
throw new Error('create error')
} else {
throw new Error('server error')
}
}
最佳答案
更新:aws-sdk v3
从版本 v3 开始,属性名称已更改为 name
:
if (e.name === 'ConditionalCheckFailedException') {
旧帖:aws-sdk v2
您可以改用以下守卫来检查错误:
if (e.code === 'ConditionalCheckFailedException') {
请注意,instanceof
仅适用于类,不适用于接口(interface)。所以即使你有类型,如果它是一个接口(interface),你也不能使用它,因为它依赖于某些原型(prototype)检查。使用 err.code
属性更安全。
关于javascript - 在哪里可以找到 AWS-SDK 中用于 NodeJS typescript 中的 dynamodb 的所有异常类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55538055/