问答题464/1588try...catch 可以捕获到异步代码中的错误吗?

难度:
2024-02-01 创建

参考答案:

不能。

以下面代码为例:

1try { 2 setTimeout(() => { 3 throw new Error('err') 4 }, 200); 5} catch (err) { 6 console.log(err); 7}

setTimeout是一个异步函数,它的回调函数会在指定的延时后被放入事件队列,等待当前执行栈清空后才执行。因此,当setTimeout的回调函数执行并抛出错误时,try...catch已经执行完毕,无法捕捉到异步回调中的错误。

对于异步代码,需要结合 Promise 、async/await 或者事件监听器等机制来处理错误。

最近更新时间:2024-08-10

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!