0

JavaScript アプリケーションで作業していて、エラーを修正しようとしていますが、エラーが見つかりません。これが私が持っているものです。

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

ファイルの内容を関数に渡していますが、このファイルに問題があるようです。問題はこの行です

          alert(e.lineNumber);

ファイルの先頭に行を追加しても常に同じ番号を返すので、正しい行を編集していることを確認したい. そのために、エラーを含む行の内容を表示したいと考えています。

私を助けてください。

4

3 に答える 3

0

e.stackを使用してスタックトレースを出力できます

....
catch(e) {
      alert(e.lineNumber);
      console.log(e.stack)
      return eval(txt);
    }
于 2012-10-20T17:58:46.513 に答える
0

基本的に 2 つのケースがあります: - 構文エラーの場合、エラーはそれをトリガーした "eval" 呼び出しの場所として報告されます ("ソース" ファイル内の場所ではありません)。エラー (解析されましたが、実行時に失敗しました)、http://eriwen.com/javascript/js-stack-trace/を見て、クロスブラウザー スタック ダンプに関するアイデアを取得してください。

最初のケースをデバッグするには、おそらくファイルの内容をキャプチャして、それを単独で解析する必要があります (おそらくノードまたは jsl を使用します)。

あなたが何をしようとしているのかよくわかりませんが、コードサンプルがいくつかの疑問を投げかけていると言わざるを得ません(なぜJSON.parseではなくevalなのか、なぜファイルを読み込んで関数を呼び出すのではなくevalなのか、 2 番目の評価)。

于 2012-10-20T18:05:42.873 に答える
0

スクリプトのテキストをキャプチャし、必要に応じconsole.log (txt)て出力をコピーしてファイルに貼り付けます。<script>そのファイルの上部と下部にaを配置します</script>。ファイル名の末尾を にし.htmlます。そのファイル アイコンをダブルクリックします。これによりブラウザが起動し、スクリプトが読み取られ、構文エラーが発生した行番号がブラウザ コンソールに出力されます。

于 2012-10-20T18:25:51.840 に答える