Javascript eval错误

时间:2014-03-06 10:07:17

标签: javascript

try {
    eval(somejavascript);
} catch(e) {
    console.log(e);
}

给了我像

这样的运行时错误
TypeError: Cannot call method 'leftPad' of undefined

是否有可能调试此错误,即获取评估表达式中发生错误的字符位置/行号,以及某些堆栈?

我从chrome获得的堆栈结束于eval。

实际上,我无法将我的示例javascript代码放入文件中进行调试 - 如果我将代码放入文件并将该文件包含在html文档中,则不会发生运行时错误。

1 个答案:

答案 0 :(得分:2)

我认为你的问题更多的是调试问题而不是解决方案。

如果是这样,只需将代码包装在try-catch语句中(仅用于调试!):

var jscode = 'function baz() { var foo; foo.leftPad(); } baz();';

eval('try { ' + jscode + ' } catch(err) { console.log(err.stack); }');

您可以对其进行测试here