Javascript 如何使Chrome调试器在处理未定义的变量时中断或出错

Javascript 如何使Chrome调试器在处理未定义的变量时中断或出错,javascript,google-chrome-devtools,javascript-debugger,Javascript,Google Chrome Devtools,Javascript Debugger,我的Javascript代码(数百行)挂起了Chrome,当我调试这个问题时,我发现一个变量没有定义。我在控制台中没有错误。这使得我的调试更加耗时,因为没有错误、异常或任何告诉我问题所在的信息 我不想添加调试代码。在运行时遇到未定义的变量时,是否有方法使调试器发出错误、中断调试器、给出异常或显示对开发人员有用的内容?它不一定只适用于Chrome。当使用该功能出现JavaScript错误时,您可以进入DevTools调试器。它有两种活动模式;暂停所有异常,暂停未捕获的异常 根据您的经验描述,您正在

我的Javascript代码(数百行)挂起了Chrome,当我调试这个问题时,我发现一个变量没有定义。我在控制台中没有错误。这使得我的调试更加耗时,因为没有错误、异常或任何告诉我问题所在的信息


我不想添加调试代码。在运行时遇到未定义的变量时,是否有方法使调试器发出错误、中断调试器、给出异常或显示对开发人员有用的内容?它不一定只适用于Chrome。

当使用该功能出现JavaScript错误时,您可以进入DevTools调试器。它有两种活动模式;暂停所有异常,暂停未捕获的异常

根据您的经验描述,您正在处理的应用程序可能存在已捕获但未重新抛出或记录的错误。在这种情况下,使用“暂停所有异常”(蓝色暂停图标)会有所帮助


注意:有些库,比如jQuery,捕获异常,并且不会重新抛出它们。如果您有这样的经验,您可能需要超越这些异常,或者在加载所有依赖项后设置“暂停所有异常”功能。

这两个答案似乎假设OP希望探索异常堆栈。我对这个问题的解释是,问题在于,未定义的值传播到目前为止都没有被注意到,以至于很难找到错误的来源,即使是在范围检查的情况下。然后问题是,是否可以将浏览器配置为在将未定义项用作键或用于数值或布尔计算时报告/停止,而不是分别使用默认行为undefined、NaN、false(叹气!)。如果这是有意提出的问题,可能需要澄清以吸引更好的答案。@Elias我不知道是否需要更改默认行为,或者是否可以更改。我不知道我不知道什么。也许你可以添加一个对我和其他人都有帮助的答案。这个问题差不多有5年了!我甚至不记得问题是什么,当然我现在已经过去了。我甚至在另一家公司工作。嗨@Tony.:-)我懂了。恐怕我帮不了你。我在寻找答案时发现了这个问题。。。
window.onerror = function() { debugger; }