javascript - `return` 会在 try/catch block 中被捕获错误吗?

标签 javascript node.js

我有一个 try/catch block ,在其中运行我的同步函数调用,我想知道为什么它不会被 catch 捕获,如果函数 返回一个错误。在这种情况下,我在 mySyncFunction 中有一个已知问题,但我不想抛出这个问题,因为我希望 test 函数能够捕获该问题

function test() {
  try {
    return mySyncFunction();
  } catch (error) {
    console.error('my error message', error);
    return [];
  }
}

function mySyncFunction() {
  try {
    // Do stuff
    const expectedIssue = true;
    if (expectedIssue) {
      return Error('the known issue happended');
    }
  } catch (e) {
    throw Error(e)
  }
}

console.log(test());

最佳答案

如果调用this.mySyncFunction(args)期间没有发生错误,它将正常返回。但是,如果在此调用期间引发异常,它将直接转至 catch、console.error 您的错误并返回 []

关于javascript - `return` 会在 try/catch block 中被捕获错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859375/

相关文章:

javascript - 如何从 JavaScript 中的 <style> 标签获取样式属性?

javascript - 如何使用 Alexa 编写决策树?

javascript - 鬼博客查找 View 失败 "index"

node.js - 如何识别 Node.js 中的 NODE_ENV?

json - nodejs json.stringify 内存不足的 1gb 对象

javascript - 如何在 MongoDB (Mongoose) 中更新和更新插入文档。 NodeJS

javascript - 动态加载数据时展开后EXT-JS组合框的存储重置

javascript - 如何使函数使用在另一个函数 JavaScript/jQuery 上声明的变量

javascript - ng-repeat 中的 ng-model - 初始化唯一范围属性

android - 移动应用 : restful api or sdk dynamodb