2014-03-06 34 views
1
try { 
    eval(somejavascript); 
} catch(e) { 
    console.log(e); 
} 

給我運行時錯誤像的Javascript的eval錯誤

TypeError: Cannot call method 'leftPad' of undefined 

是否有可能調試這個錯誤,即得到其中在已評估的表達發生錯誤的字符位置/行號,有的堆?

我從chrome得到的堆棧在eval結束。

因爲它,我不能把我的示例JavaScript代碼放到一個調試文件 - 運行時錯誤不會發生,如果我把代碼放入一個文件,並在HTML文件中包含該文件。

+3

你可以發佈什麼是evalled? – Scimonster

+0

看來你正在調用'leftPad'的變量是未定義的,沒有初始化。你可以用'somejavascript'來取代'eval'部分,具體取決於它在這個階段的值,也許console.log會幫助你,以幫助你進行調試。 – melc

回答

2

我認爲你的問題更多的是關於調試問題而不是解決方案。

如果是這樣,只是包裝在一個try-catch語句的代碼(僅用於調試!):

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

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

您可以測試它here