首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何正确捕获异步函数中的错误消息?

如何正确捕获异步函数中的错误消息?
EN

Stack Overflow用户
提问于 2022-07-14 12:04:39
回答 2查看 57关注 0票数 1
代码语言:javascript
运行
复制
app.get('/someFunction', someFunction);

async function someFunction(req, res) {
  try {
    await functionWithError(parameter);
    res.send('success');
  } catch (err) {
    console.log(err); //works
    res.send(err); //does not
  }
}

async function functionWithError(parameter) {
  return (result = await query('SELECT * from table where column = ?', [
    parameter,
  ]));
}

functionWithError中的错误是“查询”没有定义。在“尝试-捕捉”中,正确地捕捉火灾,但是res.send(err)是空的,但是console.log(err)工作。

EN

回答 2

Stack Overflow用户

发布于 2022-07-14 12:43:47

对于JSON错误,可能是循环结构吗?我想,因为我看不到您的query函数。

你也可以试试console.log(JSON.stringify(err)) //works吗?

如果您得到了// ⛔️ TypeError: Converting circular structure to JSON的错误,那么是循环结构问题阻止您只是“发送”,因为您不能发送一个循环对象。

要仍然希望发送循环对象,请参阅:https://github.com/WebReflection/flatted#flatted

票数 0
EN

Stack Overflow用户

发布于 2022-07-14 12:44:39

这里抛出的错误对象应该使用err.name或err.message。

参考资料:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72980195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档