JavaScript - eval 中的嵌套函数不适用于 try/catch 块

我有以下代码可以在一个中运行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 ...),整个代码在异步函数中,如果这有所不同的话。


慕少森
浏览 244回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript