如何在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>
顺便说一下,我是在chrome上测试的。开发人员控制台会注册未捕获的异常,但window.onerror中的警告()不会出现。
发布于 2010-03-07 18:15:30
从2013年开始,Chrome支持window.onerror
。(我有版本25的注释暗示了更早的版本)
我所做的是使用currying包装JQuery,以创建一个总是在JQuery函数中执行try...catch
的代理。
我在www.js-analytics.com中使用它,但是这个解决方案只适用于JQuery脚本。
在2013年之前,Google Chrome不支持window.onerror
,显然它没有在WebKit中实现。
发布于 2010-03-05 13:10:56
window.onerror = function(errorMsg, url, lineNumber) {
// code to run when error has occured on page
}
发布于 2010-03-05 13:12:20
也许你正在寻找window.onerror,不确定它是否在所有浏览器上都可用。
https://stackoverflow.com/questions/2384666
复制相似问题