39

许多其他编程语言(例如 java、ruby)中的异常/错误总是提供堆栈跟踪/回溯信息。

在 JavaScript 中,未处理的错误会被 window.onError 捕获。

尽管该函数没有获取 Error 对象,所以我们无法访问该对象的 stack 属性。

是否有任何可靠的信息来源说明何时会有任何变化?

4

2 回答 2

38

将包含“已清理”堆栈跟踪的错误对象现在作为第五个参数传入onerrorChrome。你可以在这里阅读:https ://code.google.com/p/chromium/issues/detail?id=147127

在撰写本文时,它位于 Canary 中,应该会在本月晚些时候推出稳定的 Chrome 版本。如果你正在运行 Canary,你可以像这样测试它:

window.onerror = function (message, file, line, column, errorObj) {
    if(errorObj !== undefined) //so it won't blow up in the rest of the browsers
        console.log('Error: ' + errorObj.stack);
}

您可以根据规范看到他们还添加了 IE 10 也实现的列号。

您还可以查看 Mozilla 讨论:https ://bugzilla.mozilla.org/show_bug.cgi?id=355430

于 2013-10-04T00:25:37.357 回答
11

似乎错误对象本身将是提供给 onerror 的第五个参数。http://html5.org/tools/web-apps-tracker?from=8085&to=8086
http://www.whatwg.org/specs/web-apps/current-work/ - 第 7.1.6.1 节

于 2013-07-25T21:26:08.497 回答