ecmascript使用window.onerror

时间:2012-05-28 19:54:16

标签: javascript

所以我试图围绕我刚刚在“专业Javascript”中阅读的内容, Nicholas Zakas :它给出了以下代码作为示例:

window.onerror = function(message, url, line){
alert(message);
return false;
};

然后说:“通过返回false,此函数有效地成为整个文档的try-catch语句,捕获所有未处理的运行时错误。此事件处理程序是针对错误的最后一道防线被浏览器报告..“

所以我的问题是,这段代码是否会阻止脚本执行停止,遇到任何错误?还是有任何错误仍然会停止执行?感谢。


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

2 个答案:

答案 0 :(得分:0)

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

window.onerror = function(message, url, line){
    alert(message);
    return false;
};
throw 'Catch this error';

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

答案 1 :(得分:0)

无论是否忽略该异常,我都非常确定语法错误会被视为致命错误。

使用这个是一个坏主意,部分原因是因为浏览器的错误控制台中已经有一个非常适当的异常处理机制,但主要是因为如果您的网站有错误,那么在用户的面孔中爆破它们将不会使它们返回。