当前位置:  开发笔记 > 编程语言 > 正文

Javascript是否针对未处理/未捕获的异常触发事件?

如何解决《Javascript是否针对未处理/未捕获的异常触发事件?》经验,为你挑选了2个好方法。

我想要记录未处理的JavaScript异常.是否有未捕获异常时触发的事件?我想在浏览器中导致javascript错误之前捕获异常,但我宁愿不在try/catch中运行我的整个应用程序.任何帮助,将不胜感激.谢谢!

更新:tvanfosson指出了恐怖主义的可能性.它不是规范的一部分,仅适用于基于IE或Gecko的浏览器.

有关详细信息,请访问http://books.google.com/books?id=tKszhx-XkzYC&pg=PA386&lpg=PA386&dq=safari+onerror+javascript&source=web&ots=gQaGbpUnjG&sig=iBCtOQs0aH_EAzSbWlGa9v5flyo#PPA387,M1

OnError支持表 - http://www.quirksmode.org/dom/events/error.html

Mozilla的文档 - https://developer.mozilla.org/en/DOM/window.onerror

WebKit Bug报告 - https://bugs.webkit.org/show_bug.cgi?id=8519



1> Dave Dopson..:

看看这个小提琴:

http://jsfiddle.net/xYsRA/1/

window.onerror = function (msg, url, line) {
    console.log("Caught[via window.onerror]: '" + msg + "' from " + url + ":" + line);
    return true; // same as preventDefault
};

window.addEventListener('error', function (evt) {
    console.log("Caught[via 'error' event]:  '" + evt.message + "' from " + evt.filename + ":" + evt.lineno);
    console.log(evt); // has srcElement / target / etc
    evt.preventDefault();
});


throw new Error("Hewwo world.  I crash you!!!");

throw new Error("Hewwo world.  I can only crash you once... :(");

哪个印刷品:

Caught[via window.onerror]: 'Uncaught Error: Hewwo world.  I crash you!!!' from http://fiddle.jshell.net/xYsRA/1/show/:32 fiddle.jshell.net:21
Caught[via 'error' event]:  'Uncaught Error: Hewwo world.  I crash you!!!' from http://fiddle.jshell.net/xYsRA/1/show/:32 fiddle.jshell.net:26
ErrorEvent {lineno: 32, filename: "http://fiddle.jshell.net/xYsRA/1/show/", message: "Uncaught Error: Hewwo world.  I crash you!!!", clipboardData: undefined, cancelBubble: false…}
 fiddle.jshell.net:27\

笔记:

如果删除"return true"/"evt.preventDefault()"行,则在记录错误后,它将以正常方式在JS控制台上打印.

与上面的陈述相反,window.onerror在我测试的所有浏览器中都有效.但是,addEventListener方法可能更好,并提供更丰富的语义.



2> tvanfosson..:

尝试使用onerror处理程序. 来自MDN的文档.这将允许您在检测到错误时执行某些操作,但可能不会让您以优雅的方式继续尝试/捕获块.请注意,浏览器之间的差异无疑是如何处理的.


以下是使用w3schools.com作为参考的标准警告.有关更多信息,请访问http://www.w3fools.com.
@ L0j1k我现在通常不使用它作为资源,但有趣的是,即使w3fools.com认识到它们已经有所改进."W3Schools仍然存在问题,但他们至少参与了开发人员的主要关注.对于许多初学者来说,W3Schools已经构建了提供良好学习体验的教程和游乐场.但是,如果不学习更多知识,继续教育将是错误的.信誉良好的消息来源,所以当你准备升级时,继续前进."
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有