我注意到对于 Firefox/Firebug(我的主要开发环境),一些错误会产生堆栈跟踪,而另一些则不会。起初我认为这与我是否生成了错误(例如 new Error("foo"))或 Javascript 是否生成了它(例如 undefinedFoo += 1)有关,但我注意到这两种类型都发生了的错误。
所以,我的问题是,有人知道这是什么原因吗?它是随机的还是有一些模式/逻辑?只是 Firefox 和/或 Firebug 蹩脚还是其他浏览器也这样做?最重要的是,我能做些什么来控制它(特别是让它总是给我堆栈跟踪)?
这不是一个关键问题(因为我总是可以在发生错误的任何行之前抛出一个“console.trace()”),但我很好奇是否有人知道答案。
**********编辑**********
我找到了这个线程: http ://groups.google.com/group/firebug/browse_thread/thread/1f32df8b96ec1d30/64b9074cb99056c2? pli=1 其中提到如果错误不是一个实例,Firefox 不会为 Firebug 提供堆栈跟踪错误。换句话说,如果你抛出一些不是 new Error("foo") 的东西,你将不会得到堆栈跟踪。
但是,这对我没有帮助,因为即使我抛出新的 Error(),我也没有看到堆栈跟踪。