try {
eval(somejavascript);
} catch(e) {
console.log(e);
}
给了我像
这样的运行时错误TypeError: Cannot call method 'leftPad' of undefined
是否有可能调试此错误,即获取评估表达式中发生错误的字符位置/行号,以及某些堆栈?
我从chrome获得的堆栈结束于eval。
实际上,我无法将我的示例javascript代码放入文件中进行调试 - 如果我将代码放入文件并将该文件包含在html文档中,则不会发生运行时错误。
答案 0 :(得分:2)
我认为你的问题更多的是调试问题而不是解决方案。
如果是这样,只需将代码包装在try-catch语句中(仅用于调试!):
var jscode = 'function baz() { var foo; foo.leftPad(); } baz();';
eval('try { ' + jscode + ' } catch(err) { console.log(err.stack); }');
您可以对其进行测试here。