全局JavaScript异常处理程序(在Chrome中)

时间:2010-03-05 05:01:11

标签: javascript google-chrome exception-handling

如何在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()不会出现。

4 个答案:

答案 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的支持

  • 我认为支持始于Chrome v10(Chromium Issue 7771),但似乎已在Chrome 30+(Chromium Issue 159566)左右解决了带有CORS支持的“全面”支持
  • caniuse.com当前未跟踪此JS功能(GitHub Issue 11999)...以对此问题添加支持,登录GitHub并在原始帖子上显示“竖起大拇指”并“反应”(< em>不要在评论中+1 。)

window.onerror的最新Google文档

答案 3 :(得分:0)

也许您正在寻找window.onerror不确定这是否适用于所有浏览器。