为啥 Firebug 不为未定义的属性显示“未捕获的类型错误”?

Posted

技术标签:

【中文标题】为啥 Firebug 不为未定义的属性显示“未捕获的类型错误”?【英文标题】:Why does Firebug not show an 'Uncaught Type Error' for undefined properties?为什么 Firebug 不为未定义的属性显示“未捕获的类型错误”? 【发布时间】:2014-10-23 20:34:29 【问题描述】:

我通常使用 Firebug 进行开发,但最近我的一些脚本一直默默地失败。在跟踪错误数小时后,我发现我试图获取未定义变量的属性。控制台没有错误,页面只是“坏了”。但是,在 Chrome DevTools 中,它可以正确识别错误。这是一个简单的测试用例:

var x = 
    i: a:1,b:2

在 Chrome 中你会得到

console.log(x.i.a); //1
console.log(x.iii.a); //Uncaught TypeError: 
                      //Cannot read property 'a' of undefined 
console.log('finished'); //does not execute

在 Firebug 中你会得到

console.log(x.i.a); //1
console.log(x.iii.a); //(nothing)
console.log('finished'); //does not execute

看到这个Fiddle。

所以在一个真实的脚本中,当这种情况发生时,我很难追踪我的脚本在哪里停止,我必须添加大量控制台日志来缩小错误范围。

这是一个错误,还是 Firebug 的预期行为,或者我可以调整一个设置?我使用的是 2.0.3。

【问题讨论】:

原生 Firefox 调试器显示错误就好了。 firebug 接管了普通控制台 (***.com/questions/8212373/…),所以我不能使用它,也不想使用它。 它不再那么糟糕了... :) 如果您认为这是一个错误,请向 Firebug 提交一个错误。 【参考方案1】:

您需要检查Console panel options menu 中的选项显示javascript 错误

如您所见,这会使控制台正确记录错误消息。

【讨论】:

以上是关于为啥 Firebug 不为未定义的属性显示“未捕获的类型错误”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 HTTP DELETE 请求正文显示为未定义?

为啥从 json 操作中检索到的数据显示为未定义?

datatables jquery - 未捕获的类型错误:无法读取未定义的属性“显示”

未捕获的类型错误:无法在绘图时读取未定义的属性“显示”(sketch.js:49)

为啥 Firebug 在视频加载请求中显示“206 Partial Content”响应?

错误未捕获类型错误:无法读取完整日历上未定义的属性“hasTime”