我有以下代码可以在一个中运行eval():
const code = `
async function func() {
asd();
}
func();
`;
try {
console.log("running code");
return eval(code);
}
catch (err) {
console.log("error");
return err.message;
}
在这种情况下,asdis undefined,因此我希望引用错误作为字符串 ( return err.message;)返回。但是,不是触发 catch 块,而是抛出异常,就好像没有 try/catch 块一样。但是,如果我要运行eval("asd()"),该catch块将捕获错误并返回一个字符串。对于嵌套函数,我需要做些什么不同的事情吗?
注意:由于其他代码(之前const code ...),整个代码在异步函数中,如果这有所不同的话。
相关分类