如何在 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 中的 alert() 没有出现。
最佳答案
截至 2013 年,Chrome 支持 window.onerror
。 (我有 25 版,评论也暗示早期版本。)
我使用 currying 封装了 jQuery创建一个始终在 jQuery 函数中执行 try...catch
的代理。
我在 www.js-analytics.com 中使用它.但是,该解决方案仅适用于 jQuery 脚本。
在 2013 年之前,Google Chrome 不支持 window.onerror
,显然它没有在 WebKit 中实现。 .
关于javascript - 全局 JavaScript 异常处理程序(在 Chrome 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384666/