javascript - JavaScript 返回以及如何使用它来捕获错误
问题描述
在下面的代码中,getExtended() 中没有捕获来自 get() 的错误。
async function get() {
throw new Error('err in get');
}
async function getExtended() {
try {
return get();
} catch(err) {
err.message += 'err in getExtended;
}
}
但是如果我将 get() 的返回值存储在一个变量中,那么返回它会被 try-catch 捕获。这也可以通过在获取后执行 .catch() 来捕获。
无论状态如何,return 是否都会隐式返回调用函数?这里发生了什么?
解决方案
如果你在try-catch
短语中有一个异步函数并且你想捕捉你必须使用的异常:
async function getExtended() {
try {
return await get();
} catch(err) {
error.message += 'err in getExtended;
}
}
由于get
函数定义为async
,必须在您提供的演示代码中不必要地说明。
推荐阅读
- neo4j - 在 Neo4j 中,节点的属性可以是变量吗?
- tailwind-css - Tailwind CSS Group 不适用于自定义类
- javascript - 将打字稿转换为javascript
- python - 如何剥离列并合并?
- php - 自定义帖子类型的 Wordpress 预览链接问题
- angular - 为什么会话 cookie 没有保存在浏览器中?
- c - Linux中C中2个不同应用程序之间的FIFO通信
- snowflake-cloud-data-platform - Snowflake 过程 JavaScript 编译错误:未捕获的 SyntaxError: Unexpected token ':' in ERR_LOGGING at
- node.js - Node.js | fs.readFileSync 找不到刚刚保存在文件夹中的文件
- maven - 如何将 Maven 存储库配置文件重置为特定项目的默认配置?