阅读量:0
在try catch中捕获异步错误有一点特殊之处,因为异步操作是在当前代码块之外执行的。通常情况下,异步操作会返回一个Promise对象,可以使用Promise的catch方法来捕获异步操作的错误。
以下是一个例子,演示如何在try catch中捕获异步错误:
try { asyncFunction().then(result => { console.log(result); }).catch(error => { console.error(error); }); } catch (error) { console.error('Caught error in try catch:', error); } async function asyncFunction() { return new Promise((resolve, reject) => { setTimeout(() => { reject(new Error('Async error')); }, 1000); }); }
在上面的例子中,我们首先在try块中调用了一个返回Promise对象的异步函数asyncFunction()
。在该函数中,我们使用setTimeout模拟一个异步操作,并在1秒后reject一个错误。在then方法中,我们打印了结果,而在catch方法中,我们捕获了错误。
需要注意的是,try catch只能捕获同步代码块中的错误,对于异步代码块中的错误,需要使用Promise的catch方法或async/await来捕获。