如果我自己抛出一个JavaScript异常(例如,抛出“AArrggg”),我如何获得堆栈跟踪(在Firebug或其他)?现在我刚收到消息。
编辑:正如下面许多人发布的那样,可以为JavaScript异常获得堆栈跟踪,但我想为我的异常获得堆栈跟踪。例如:
function foo() {
bar(2);
}
function bar(n) {
if (n < 2)
throw "Oh no! 'n' is too small!"
bar(n-1);
}
当调用foo时,我想获得一个堆栈跟踪,其中包括对foo, bar, bar的调用。
在Firefox上比在IE上更容易获得堆栈跟踪,但从根本上来说,这是你想要做的:
将“有问题的”代码段包装在try/catch块中:
try {
// some code that doesn't work
var t = null;
var n = t.not_a_value;
}
catch(e) {
}
如果你要检查"error"对象的内容,它包含以下字段:
e.fileName:问题产生的源文件/页
e.lineNumber:出现问题的文件/页中的行号
message:描述发生错误类型的简单消息
e.name:发生错误的类型,在上面的例子中它应该是'TypeError'
e.stack:包含导致异常的堆栈跟踪
我希望这能帮到你。