如何在javascript中覆盖全局异常处理程序,使其成为所有未捕获异常的顶级处理程序?
编辑:window.onerror没有用,代码是:
<HTML>
<HEAD>
<script language='javascript'>
window.onerror = function (em, url, ln) {
alert(em + ", " + url + ", " + ln);
return false;
}
function fGo() {
try
{
var a = b; // error here : b not defined
}
catch (e)
{
throw e;
}
}
</script>
</HEAD>
<BODY>
<button onclick='fGo()'>GO</button>
</BODY>
</HTML>
顺便说一句,我正在测试铬。开发人员控制台注册未捕获的异常,但window.onerror中的alert()不会出现。
答案 0 :(得分:14)
截至2013年,Chrome支持window.onerror
。 (我有25条评论意味着早期版本)
我所做的是使用currying包装JQuery来创建一个始终在JQuery函数中执行try...catch
的代理。
我在www.js-analytics.com中使用它,但该解决方案仅适用于JQuery脚本。
2013年之前,Google Chrome不支持window.onerror
,显然它没有在WebKit中实现。
答案 1 :(得分:3)
window.onerror = function(errorMsg, url, lineNumber) {
// code to run when error has occured on page
}
答案 2 :(得分:1)
Chrome对window.onerror
的支持
window.onerror
的最新Google文档
答案 3 :(得分:0)
也许您正在寻找window.onerror不确定这是否适用于所有浏览器。