javascript - 有没有办法从 Internet Explorer 中的错误对象获取行号或堆栈跟踪?

标签 javascript debugging internet-explorer exception

为了ease debugging一些棘手的异步 Javascript 代码在 Internet Explorer 中行为不当,我想知道是否有可能在给定 Error 对象的情况下获取有关其原始位置的有用信息。

Firefox、Chrome、Opera 和我想所有其他不错的浏览器都可以让我这样做:

try{
    throw Error('My custom error message');
}catch(e){
    console.log(e.stack)
}

但我尝试过的所有属性(error.stackerror.lineNumber)都不能在 Internet Explorer 上运行。 有没有办法只使用 Javascript 在 Internet Explorer 上获取此信息?由于 IE REPL 将显示未处理异常的原始行号,即使它们在不同的行中被捕获并重新抛出,我假设我想要的信息存储在某处,但我无法确定是否有公共(public)方式来获取它。

最佳答案

这些属性在 IE 中不可用。您可以通过使用 arguments.callee 图获得一些方法。但是,如果您有很多匿名函数或经常使用 bind(),则此方法效果不佳。

参见 Closure Library's debug package 中的 goog.debug.getStacktrace()一个示例实现。 goog.debug.normalizeErrorObject() 也可能对您有用。

关于javascript - 有没有办法从 Internet Explorer 中的错误对象获取行号或堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9199183/

相关文章:

c++ - 用于 igraph_vector_t 和 igraph_matrix_t 的 GDB pretty-print

c++ - 使用 Eclipse 调试 C++ 库

包含 if 和 .each() 的 jQuery 函数在 IE7 中非常慢

jquery - IE 在一个非常简单的菜单中的第一个 LI 之后添加一个垂直空间

internet-explorer - 是否可以使用不同的 session 同时打开两个浏览器窗口?

javascript - 在 React 中调用多个函数,一个在组件内部,另一个在组件外部?

javascript - 延迟重定向 (Javascript)

debugging - 确定哪个方法持有 ReaderWriterLockSlim WriteLock

javascript - 将表单值发布到 html

javascript - 使用 Javascript 将可扩展表导出为 CSV