javascript - 有什么办法可以阻止 Javascript 默默地失败吗?

标签 javascript debugging exception firebug

让我抓狂的一件事是 Javascript 在许多不同的情况下会默默地失败。

(删除了示例,因为它混淆了我的问题的要点)

很多时候我遇到过一个错误,当在 Firebug 控制台中输入时会给出错误消息,但是当它在页面脚本中运行时,它会默默地失败,即使 Firebug 控制台处于事件状态并打开!

其中一些问题可以被 Crockford 的 JsLint 捕获,但仍有很多问题无法捕获。

有没有办法在浏览器中启用更多错误消息?

您可以在不使用 javascript 调试器环境的情况下完成此操作吗?我发现调试器对我帮助不大。我通常会撒几条console.log()语句,一分钟就能定位到问题。让我抓狂的是,Javascript 中的无声错误可能会在很长一段时间内被忽视,或者以根本不明显的方式出现。更令人沮丧的是,在控制台中测试该语句确实给出了错误,那么这是怎么回事?

顺便说一句,我也遇到了同样的异常问题,有人注意到这一点吗?很多时候我的 throw new 语句根本不起作用。但如果我在控制台中输入相同的内容,就会出现这种情况。

感谢您的有用评论(第一个答案),但这不是我的问题。当您需要清理类的参数时(例如,当您不确定环境时),这些测试非常有用。您不想测试您期望的属性或类是否存在;这会无缘无故地使代码变得臃肿。

最佳答案

我认为这个问题的一些答案误解了这个问题。 IIUC,问题是当此代码在真实网页中运行时,错误消除,但OP不希望它被消除。 (大概主要是为了调试目的。)

我的问题是,这段代码真正在网站的上下文中运行在哪里?很可能有其他东西在错误到达您之前将其压制住。例如,某些库可能会本能地抑制特定回调(例如 XHR)中发生的错误。但是,如果它们很好,它们也往往会提供一个 Hook 点,以便在发生错误时接收通知。

关于javascript - 有什么办法可以阻止 Javascript 默默地失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941478/

相关文章:

hibernate - Hibernate 中的哪个类生成被记录的 SQL 语句?

c++ - std::stack<T> 在 eclipse 中调试时导致段错误

c# - 当应用程序位于远程计算机上时,异常未定义

javascript - 当我只知道它是 "name"属性时,如何通过 jQuery 设置输入元素的值

JavaScript HTML Google Maps API 地理编码服务问题

javascript - ExtJS5 - 图表极坐标 itemclick

javascript - 如何在 Pnotify 中将焦点设置在按钮上

debugging - Gfortran:将所有 block 视为 block

exception - "Length of the data to decrypt is invalid."Rijndael 解密期间的异常

php - 捕获 PDO fatal error 并抛出异常