22

JavaScriptでTRY-CATCHを使用する場合、エラーの原因となった行の行番号を取得するにはどうすればよいですか?

多くのブラウザでは、以下のコードがうまく機能し、例外をスローする実際の行を指すスタックトレースを取得します。

ただし、一部のブラウザには「e.stack」がありません。iPhoneのサファリはその一例です。

すべてのブラウザで機能する行番号を取得する方法はありますか?

try
{
   // lots of code here
   var i = v.WillGenerateError; // how to get this line number in catch??
   // lots of code here
} 
catch (e) 
{
     alert (e.stack)  // this will work on chrome, FF. will no not work on safari 
     alert (e.line)  // this will work on safari but not on IPhone
}

どうもありがとう!

更新:e.lineはsafariで動作しますが、最新のiOSバージョンであるiPhoneではまだ使用できないことがわかりました

4

2 に答える 2

6

使ってみてくださいe.lineNumber。例えば:

try {
   var i = v.WillGenerateError;
} catch (e) {
   alert(e.lineNumber);
}
于 2012-06-11T22:19:30.583 に答える
0
try {
   0();
} catch (e) {
   alert(e.line);
}

try…catch ブロックで「e.line」を使用すると、Mobile Safari でエラーの行番号が表示されます。

于 2014-07-15T21:08:34.203 に答える