簡體   English   中英

Javascript:在知道行號的情況下顯示行的內容

[英]Javascript: Display the content of a line knowing its number

我正在開發JavaScript應用程序,正在嘗試修復錯誤,但找不到它。 這就是我所擁有的。

 function my_function (txt) {
    try {
        return eval('('+ txt + ')');
    }
    catch(e) {
      alert(e.lineNumber);
      return eval(txt);
    }

我正在將文件的內容傳遞給函數,似乎此文件中有問題。 問題是這條線

          alert(e.lineNumber);

即使我在文件開頭添加行,也總是返回相同的數字,因此我想確保自己正在編輯正確的行。 為此,我希望它顯示包含錯誤的行的內容。

請幫我。

您可以使用e.stack打印stacktrace

....
catch(e) {
      alert(e.lineNumber);
      console.log(e.stack)
      return eval(txt);
    }

基本上有兩種情況:-如果是語法錯誤,則錯誤將報告為觸發該錯誤的“ eval”調用的位置(而不是“源”文件中的位置),-如果是語義錯誤(它已解析但在運行時失敗),然后查看http://eriwen.com/javascript/js-stack-trace/以獲取有關跨瀏覽器堆棧轉儲的一些想法。

要調試第一種情況,您可能必須捕獲文件內容並嘗試自行解析(也許使用node或jsl)。

我不太清楚您要做什么,但是我不得不說代碼示例提出了一些問題(為什么不使用JSON.parse,為什么先讀取文件然后使用eval而不是包括它並調用函數,這是什么呢?第二次評估)。

捕獲腳本的文本,必要時使用console.log (txt)然后將輸出復制粘貼到文件中。 在該文件的頂部放置<script> ,在底部放置</script> 使文件名以.html結尾。 現在,雙擊該文件圖標。 這將啟動您的瀏覽器,該瀏覽器將讀取腳本並將所有語法錯誤輸出到顯示其發生行號的瀏覽器控制台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM