在JavaScript中使用TRY-CATCH时,如何获取导致错误的行号?
在许多浏览器中,下面的代码将运行良好,我将获得指向抛出异常的实际行的堆栈跟踪。
但是,有些浏览器没有“e.stack”。 iPhone的Safari是一个例子。
有什么方法可以获得适用于所有浏览器的行号吗?
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,但仍然无法在iPhone,最新的iOS版本
上使用答案 0 :(得分:3)
尝试使用e.lineNumber
。
例如:
try {
var i = v.WillGenerateError;
} catch (e) {
alert(e.lineNumber);
}
答案 1 :(得分:0)
try {
0();
} catch (e) {
alert(e.line);
}
使用' e.line'在try ... catch块中将给出Mobile Safari中的错误行号。