2010-05-18 27 views
7

我试图完成的是注册一个全局处理程序来捕获所有未捕获的异常。 在网上搜索我只设法找到人指出window.onerror但这并没有为我做的伎俩。 显然window.onerror只会在错误时调用,而不是在异常时调用。 假设下面的代码:如何在没有try/catch-block的情况下处理javascript中未捕获的异常?

function windowError(message, url, line) { 
     alert(message, url, line); 
    } 
    window.onerror=windowError; 
    throw("uncaught"); 

的明显未捕获的异常不会触发windowError处理程序。 (使用Firefox 3.6.3)

有什么建议吗?

+1

上面的代码在chrome v12上效果很好。干杯。 – 2011-06-09 12:45:51

回答

2

就我所知,你需要try/catch块来实现这一点。这很重要,你需要知道什么时候处理哪种错误。

+0

发现这篇文章时谷歌搜索如何捕捉unhandeled JavaScript异常。您无法预见在给定的代码中会发生的所有类型的异常。 window.onerror是至少显示错误的好方法。我走得更远了,在我的网站上,我将window.onerror事件中的数据发布到我的服务器上的webmethod,并将错误记录到应用程序日志中。 – Anders 2012-10-31 15:27:28

4

错误都陷入同样的​​方式例外在javascript而事实上,在你的榜样消息获取的惊动(火狐3.6.3)。

+0

这很奇怪。它没有得到Firefox 3.6.3的任何警报。 – Taloncor 2010-06-02 17:44:28

+0

我试过你的例子在一个简单的HTML页面,它确实工作。奇怪的是,在你的Firefox不是“提醒”...你有没有尝试过另一个浏览器? – 2010-06-02 18:16:11

相关问题