JavaScript 中的 try-catch:如何获取原始错误的堆栈跟踪或行号
try-catch in JavaScript : how to get stack trace or line number of the original error
在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上仍然不可用
尝试使用 e.lineNumber
.例如:
try {
var i = v.WillGenerateError;
} catch (e) {
alert(e.lineNumber);
}
与所有浏览器完全兼容
var aux = err.stack.split("'n");
aux.splice(0, 2); //removing the line that we force to generate the error (var err = new Error();) from the message
aux = aux.join(''n"');
throw message + ' 'n' + aux;
错误:myError at :4:11 at Object.InjectedScript._evaluateOn(:777:140).在Object.InjectedScript._evaluateAndWrap(:710:34)。在Object.InjectedScript.evaluate (:626:21).
try {
0();
} catch (e) {
alert(e.line);
}
在尝试中使用"e.line"...catch 块将在移动 Safari 中给出错误的行号。
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- HTML5 Canvas访问控制允许原始错误
- 如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误
- jQuery.get()访问控制只允许某些资源出现原始错误
- JavaScript 中的 try-catch:如何获取原始错误的堆栈跟踪或行号
- 在 Blockcypher 上广播原始事务,在 POST 请求时出现错误
- Chrome 扩展程序会提取错误的元数据,而不会重新加载整页(原始 HTML 和浏览器解释之间存在差异)
- 重定向后,如何显示来自原始文件的错误消息
- Chrome中的错误:“;原始文件://不允许访问控制允许原始文件;
- ajax表单提交后iScroll4高度错误.高度是表单提交前的原始高度
- 修改函数内部的JavaScript对象,如果出现错误,则返回原始对象
- 原始页面上的JS错误是否会阻止chrome内容脚本运行
- AngularJS -设置表单原始,不移除验证错误
- jQuery UI可排序-在ajax错误后恢复原始位置
- 处理原始JavaScript返回到.ajax错误函数,尽管200 OK
- $http给出了"不允许访问-控制-允许-原始"错误在Chrome浏览器
- XMLHttpRequest访问控制允许原始错误Google Drive API