在js中捕获referenceError

时间:2015-09-12 09:27:14

标签: javascript referenceerror

我有一个textarea,用户可以输入javascript代码,按下该按钮后将传递给eval()。

当用户输入以下内容时,我无法捕获referenceError:

var myName = Maria;

而不是

var myName = "Maria";

谢谢你的时间!

2 个答案:

答案 0 :(得分:14)

好的,正如你所说,你理解eval()的坑,我在这里提出一个解决方案。

try {
    var myName = Maria;
} catch (e) {
    if (e instanceof ReferenceError) {
        // Handle error as necessary
    }
}

答案 1 :(得分:3)

尝试在eval()调用周围加try/catch block。像这样:

try {
    eval(userInput);
} catch (e) {
    // do something
}

(请注意,出于安全原因,将用户输入传递给eval()是 NOT 您应该在真实网站上执行的操作。)