我已经在一些旧代码中看到了几个catch块。这有任何意义吗?

康斯坦丁·佩尔辛

在处理当前项目时,我看到了一些奇怪的代码构造,如下所示:

  async_api_call_with_throw_errors //pseudocode
    .then(() => async_call_with_throw_errors) //pseudocode
    .then(() => async_call_with_throw_errors) //pseudocode
    .then(() => async_call_with_throw_errors) //pseudocode
    .then(() => async_call_with_throw_errors) //pseudocode
    .catch((e) => {
        Sentry.captureException(e)
        if (e?.validateError) {
         //some actions
        } else {
          dispatch({ type: errorOccurred, errorText: e?.message, fatalError: false })
        }
      })
    .catch(e => {
      Sentry.captureException(e)
      dispatch({ type: errorOccurred, errorText: e, fatalError: false })
    })

如果“ catch”块捕获了几种错误类型,那是可以的,但是“ then”块之后的两个具有相同错误的“ catch”块有意义吗?

我觉得不是。但是也许我对try ... catch不了解重要的事情?

Shreyas荒野

如果前一个捕获引发错误,然后被后续捕获捕获,则具有多个捕获可以正常工作。看下面的代码。

const promise1 = new Promise((resolve, reject) => {
  throw 'Uh-oh!';
});

promise1.catch((error) => {
  console.error(error);
  throw "Error was caught!"
}).catch(err => {
    console.error(err)
})
// Expect Output:
//  > Uh-oh!
//  > Error was caught!

希望这能消除一些疑问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我已经在C ++中看到了以下代码。它是定义的行为吗?

来自分类Dev

我在代码中看到了与列表有关的内容,但不确定它的作用

来自分类Dev

我在Linux的htop中看到了什么?

来自分类Dev

应该有一个标识符,而在循环jslint中看到了“)”

来自分类Dev

我遇到了一些 C++ 代码。为什么我们必须在块中使用 *this 而不是 this?

来自分类Dev

如何知道用户是否在Telegram中看到了我的机器人发送的消息?

来自分类Dev

我在XSLT中看到了此递归模板,无法理解正在发生的情况

来自分类Dev

python socket.recv挂起,但是我在tcpdump中看到了框架

来自分类Dev

我在XSLT中看到了此递归模板,无法理解正在发生的情况

来自分类Dev

Math.max我没有看到一些语法错误吗?

来自分类Dev

我在Firebase中看到了应用程序内购买,但在iTunes connect / AppAnnie中看不到它们

来自分类Dev

我来的时候看到了表演

来自分类Dev

我的DOM元素已经有一些div了。我可以使用D3添加更多吗?

来自分类Dev

尽管我在控制台中看到了新页面,但 laravel jquery ajax 并未重定向

来自分类Dev

JSLint-预期会看到一条语句,但看到了一个块

来自分类Dev

在浏览器上打开html文件时,我看到了源代码

来自分类Dev

React:期望赋值或函数调用,而是在 JSX 中看到了一个表达式

来自分类Dev

git diff没有任何意义

来自分类Dev

DOUBLE DQN没有任何意义

来自分类Dev

Git diff没有任何意义

来自分类Dev

我可以在已经有一些DDR2 ECC内存的机器上使用非ECC内存吗?

来自分类Dev

我的select_sort函数有任何问题,有人可以给我一些建议吗?

来自分类Dev

Google Analytics(分析):我看不到我网站的任何会话,但我看到了实时数据

来自分类Dev

我在代码中打开切换按钮时遇到了一些麻烦

来自分类Dev

无法控制台日志 Auth0 user_metadata。我创建了一个自定义规则我也在邮递员中看到了数据。我做错了什么

来自分类Dev

有一些Java代码测试或练习工具吗?

来自分类Dev

嗨,我是一名学生,可以给我一些有关这些代码的提示吗?

来自分类Dev

为什么反汇编代码中有一些“无意义的”内存插槽?

来自分类Dev

导入之前我必须先拥有文件没有任何意义

Related 相关文章

  1. 1

    我已经在C ++中看到了以下代码。它是定义的行为吗?

  2. 2

    我在代码中看到了与列表有关的内容,但不确定它的作用

  3. 3

    我在Linux的htop中看到了什么?

  4. 4

    应该有一个标识符,而在循环jslint中看到了“)”

  5. 5

    我遇到了一些 C++ 代码。为什么我们必须在块中使用 *this 而不是 this?

  6. 6

    如何知道用户是否在Telegram中看到了我的机器人发送的消息?

  7. 7

    我在XSLT中看到了此递归模板,无法理解正在发生的情况

  8. 8

    python socket.recv挂起,但是我在tcpdump中看到了框架

  9. 9

    我在XSLT中看到了此递归模板,无法理解正在发生的情况

  10. 10

    Math.max我没有看到一些语法错误吗?

  11. 11

    我在Firebase中看到了应用程序内购买,但在iTunes connect / AppAnnie中看不到它们

  12. 12

    我来的时候看到了表演

  13. 13

    我的DOM元素已经有一些div了。我可以使用D3添加更多吗?

  14. 14

    尽管我在控制台中看到了新页面,但 laravel jquery ajax 并未重定向

  15. 15

    JSLint-预期会看到一条语句,但看到了一个块

  16. 16

    在浏览器上打开html文件时,我看到了源代码

  17. 17

    React:期望赋值或函数调用,而是在 JSX 中看到了一个表达式

  18. 18

    git diff没有任何意义

  19. 19

    DOUBLE DQN没有任何意义

  20. 20

    Git diff没有任何意义

  21. 21

    我可以在已经有一些DDR2 ECC内存的机器上使用非ECC内存吗?

  22. 22

    我的select_sort函数有任何问题,有人可以给我一些建议吗?

  23. 23

    Google Analytics(分析):我看不到我网站的任何会话,但我看到了实时数据

  24. 24

    我在代码中打开切换按钮时遇到了一些麻烦

  25. 25

    无法控制台日志 Auth0 user_metadata。我创建了一个自定义规则我也在邮递员中看到了数据。我做错了什么

  26. 26

    有一些Java代码测试或练习工具吗?

  27. 27

    嗨,我是一名学生,可以给我一些有关这些代码的提示吗?

  28. 28

    为什么反汇编代码中有一些“无意义的”内存插槽?

  29. 29

    导入之前我必须先拥有文件没有任何意义

热门标签

归档