我有一个 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/