【发布时间】:2011-04-25 21:12:26
【问题描述】:
让我发疯的一件事是 Javascript 在许多不同的情况下如何默默地失败。
(删除示例,因为它混淆了我的问题的重点)
很多时候我遇到一个错误,当输入到 Firebug 控制台时会给出错误消息,但是当它在页面脚本中运行时,它会默默地失败,即使 Firebug 控制台处于活动状态并打开!
Crockford 的 JsLint 可以发现其中一些问题,但仍有许多问题不会。
有没有办法在浏览器中启用更多错误消息?
你可以在不使用 javascript 调试器环境的情况下做到这一点吗?我发现调试器对我帮助不大。我一般撒几条console.log()语句,一分钟就能定位问题。让我抓狂的是,Javascript 中的静默错误可能会在很长一段时间内被忽视,或者以根本不明显的方式出现。更令人沮丧的是,因为在控制台中测试语句确实会出错,所以这是怎么回事?
顺便说一句,我遇到了同样的异常问题,有人注意到了吗?很多时候我的throw new 语句根本不起作用。但是,如果我在控制台中输入相同的内容,它就会出现。
感谢您提供帮助的 cmets(第一个答案),但这不是我的问题。当您需要清理类的参数时,这些测试很有用,例如,当您不确定环境时。您不想测试您期望它们存在的属性或类的存在;那会无缘无故地使代码膨胀。
【问题讨论】:
-
静默错误是什么意思?当网页在浏览器中运行时,默认情况下所有 JavaScript 错误都是无声的,因为没有必要将它们显示给网站的访问者。
-
我想我想知道雅虎和谷歌的 Javascript 专家在做什么。他们有一个很棒的编译器,还有 JsLint,但这还不够。我不敢相信他们会忍受这些。我肯定错过了什么。我试图弄清楚是否必须使用 Microsoft 提供的调试环境,或者是否有其他方法可以在开发人员模式下运行浏览器并在控制台中查看所有这些错误。为什么当页面运行时 Firebug 保持沉默,但当我在控制台中输入违规代码时显示错误(控制台始终打开)?
标签: javascript debugging exception-handling firebug