Javascript Ecmascript对window.onerror的使用

Javascript Ecmascript对window.onerror的使用,javascript,Javascript,因此,我试图把我的脑袋绕到我刚刚在Nicholas Zakas的“professional Javascript”中读到的东西上:它给出了以下代码作为示例: window.onerror = function(message, url, line){ alert(message); return false; }; 然后说:“通过返回false,此函数实际上成为整个文档的try-catch语句,捕获所有未处理的运行时错误。此事件处理程序是防止浏览器报告错误的最后一道防线。” 所以我的问题是,这

因此,我试图把我的脑袋绕到我刚刚在Nicholas Zakas的“professional Javascript”中读到的东西上:它给出了以下代码作为示例:

window.onerror = function(message, url, line){
alert(message);
return false;
};
然后说:“通过返回false,此函数实际上成为整个文档的try-catch语句,捕获所有未处理的运行时错误。此事件处理程序是防止浏览器报告错误的最后一道防线。”

所以我的问题是,这段代码是否会阻止脚本的执行停止,以及它遇到的任何错误?或者是否存在仍将停止执行的错误?谢谢



编辑:也许更好的问题是,为什么这不是防止脚本在遇到错误时停止执行的好方法。

一个非常简单的测试表明情况并非如此(至少对于Chrome):


没有警报,控制台中出现未捕获异常。

一个非常简单的测试表明情况并非如此(至少对于Chrome):


没有警报,控制台中会出现未捕获的异常。

我确信,无论是否忽略异常,语法错误之类的错误都会被视为致命错误


使用这是一个坏主意,部分原因是浏览器的错误控制台中已经有了一个非常充分的异常处理机制,但主要是因为如果你的网站有错误,那么在用户面前大肆攻击这些错误将不会使他们返回。

我相当肯定,无论是否忽略异常,语法错误之类的错误都将被视为致命错误


使用这种方法是一个坏主意,部分原因是浏览器的错误控制台中已经有了一个非常充分的异常处理机制,但主要原因是如果您的站点出现错误,那么在用户面前大肆攻击这些错误将不会使他们返回。

代码停止,但此回调会触发。“try catch”不是like行为导致它不停止?代码停止了,但是这个回调触发了。“try-catch”行为不是导致它不停止了吗?同意,但是如果你修改它为console.log(…)而不是警报?嗯,我明白了。。我想我还是在想错误处理是如何工作的。。基本上,我想知道防止错误停止脚本执行的最佳方法是什么。@MattDerami错误的关键在于它们不应该存在。尽管出现错误仍继续可能会带来安全隐患。kolink。。不,我明白了。我问这个问题的原因是因为我刚刚开始用wordpress建立cms网站,而且有无数次客户可能会在将图像插入帖子或其他一千件事情之前说“点击回车”。。因此,正如文章中所说,这可以作为最后一道防线。。所以我只是想了解它是如何工作的。应用程序逻辑错误应该在它们自己出现的地方处理,而不是在一个单一的位置处理。例如,在文章中插入图像之前按enter键的客户端应该在表单的onsubmit处理程序中进行处理。同意,但如果您将其修改为console.log(…),而不是警报?mm,我明白了。。我想我还是在想错误处理是如何工作的。。基本上,我想知道防止错误停止脚本执行的最佳方法是什么。@MattDerami错误的关键在于它们不应该存在。尽管出现错误仍继续可能会带来安全隐患。kolink。。不,我明白了。我问这个问题的原因是因为我刚刚开始用wordpress建立cms网站,而且有无数次客户可能会在将图像插入帖子或其他一千件事情之前说“点击回车”。。因此,正如文章中所说,这可以作为最后一道防线。。所以我只是想了解它是如何工作的。应用程序逻辑错误应该在它们自己出现的地方处理,而不是在一个单一的位置处理。例如,在文章中插入图像之前按enter键的客户端应该在表单的onsubmit处理程序中处理。是的,我认为
窗口。OneRor
只在部分时间触发,但我不知道在什么情况下:\n是的,我认为
窗口。OneRor
只在部分时间触发,但我不知道在什么情况下:\
window.onerror = function(message, url, line){
    alert(message);
    return false;
};
throw 'Catch this error';