【问题标题】:AWS JavaScript SDK v3 with TypeScript 4.4.2 and @types/node 16.7.10 thrown error type带有 TypeScript 4.4.2 和 @types/node 16.7.10 的 AWS JavaScript SDK v3 抛出错误类型
【发布时间】:2021-11-03 16:45:39
【问题描述】:

我今天(几个月后)用最新的软件包版本更新了我的package.json 文件,我认为影响这个错误的是问题主题中的那些。

一些错误处理块如下

try {
  // ...
} catch(err) {
  console.log(err.message);
}

由于 TypeScript 错误2571: Object is of type 'unknown'.而停止工作

不错!我只需要应用以下简单的更改:

try {
  // ...
} catch(err) {
  console.log(err instanceof Error ? err.message : JSON.stringify(err));
}

不仅我的代码再次开始工作,而且我觉得我的代码也更有弹性。

当我尝试处理从 AWS SDK v3 抛出的错误时,问题就出现了。

import { CloudWatchLogs, ResourceNotFoundException } from "@aws-sdk/client-cloudwatch-logs";

const cwl = new CloudWatchLogs({ region: "us-east-2" });

try {
  const logGroupName = "...";
  const logStreamName = "...";
  const { events } = await cwl.getLogEvents({ logGroupName, logStreamName });

  // ...
} catch(err) {
  if(! (err instanceof ResourceNotFoundException)) console.log(err);
}

在上述代码示例的简化(我不处理分页)中,我只想忽略ResourceNotFoundException,但err instanceof ResourceNotFoundException 检查无法编译,因为ResourceNotFoundExceptioninterface 而不是@ 987654331@.

我找到了this answer,这似乎对我有帮助。

问题是:我应该为我需要处理的每个 AWS 异常编写一个 instanceOf\w+Exception 函数(抱歉是正则表达式),还是 AWS 提供了一种通用且可重用的方式?

我寻求这个的主要原因不是我很懒(而且我很懒),但是如果我编写自己的 instanceOf\w+Exception 函数来检查 AWS 开发工具包源代码,如果亚马逊,我的函数可能会停止工作将改变 SDK 中的某些内容。

【问题讨论】:

    标签: javascript node.js typescript amazon-web-services


    【解决方案1】:

    我找到this issue:我强烈怀疑,目前,答案很简单:不,没有。

    【讨论】:

      猜你喜欢
      • 2023-01-04
      • 2017-04-05
      • 2016-12-29
      • 2018-07-11
      • 2022-06-17
      • 2022-06-30
      • 2022-11-11
      • 2019-01-02
      相关资源
      最近更新 更多