gpt4 book ai didi

javascript - 使用 TraceKit javascript 库完成堆栈跟踪

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:53 24 4
gpt4 key购买 nike

我正在尝试 TraceKit自动向服务器报告 Javascript 错误。它按应有的方式工作,但堆栈跟踪除外。它只包含一个元素:

TraceKit.report.subscribe(function(stackInfo) { alert(stackInfo.stack.length);});

function foo() {
bar();
}

function bar() {
throw "oops";
}

foo();

警报显示“1”。我还创建了 a JSFiddle使用相同的代码;

为什么我得不到完整的堆栈跟踪?我已经使用 Chrome 和 Firefox 进行了测试。

最佳答案

现在,您需要将 throw "oops"; 更改为 throw new Error("oops"); 然后您应该获得完整的堆栈跟踪。

将来,TraceKit 可以通过重新抛出错误并相应地修复堆栈跟踪来解决此问题。这个 jsfiddle 显示重新抛出以获得真正的堆栈跟踪:http://jsfiddle.net/DevinRhode2/dAYmJ/1/

代码是:

try {
function foo() {
bar();
}

function bar() {
throw "oops";
}

foo();
} catch (e) {
console.log(e, e.message, e.stack); //oops undefined undefined
try {
throw new Error(e);
} catch (e) {
console.log(
e, e.message, e.stack);/*
Error {} "oops" "Error: oops
at file://localhost/Users/devinrhode2/Desktop/test.html:23:13"
*/
}
}​​​​​​​

github 上关于 TraceKit 的其他讨论:https://github.com/occ/TraceKit/issues/23

感谢亚历克斯提出这个问题!

关于javascript - 使用 TraceKit javascript 库完成堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com