首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:全局异常处理程序

jQuery:全局异常处理程序
EN

Stack Overflow用户
提问于 2013-01-17 08:17:55
回答 2查看 13.8K关注 0票数 13

可能重复: JavaScript异常处理

我有一个web应用程序,其中100%的javascript代码作为jQuery事件处理程序执行(我猜大多数jQuery应用程序都是这样的)。

问题是如何定义全局异常处理程序。也就是说,如果在任何jQuery事件处理程序中发生的任何异常发生时调用的函数不存在(无论是onload,单击,一个后续的ajax调用,ajax错误等等)。我的函数将接收错误信息(异常、堆栈跟踪等)。

Clarification: --我的意思不是全局捕获由服务器或网络生成的ajax问题,而是全局捕获由于代码中的错误(想必是)而产生的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-17 08:34:10

我想这可以通过使用来自面向方面的编程的概念来实现。

我们可以简单地创建一个jQuery.event.dispatch包装器,它将处理错误:

代码语言:javascript
复制
(function () {
    var temp = jQuery.event.handle;
    jQuery.event.handle = function () {
       try {
          temp.apply(this, arguments);
       } catch (e) {
          console.log('Error while dispatching the event.');
       }
    }
}());
$(document).click(function () {
    throw 'Some error...';
});

使用此方法时,您必须非常小心,因为内部接口发生了更改。

  • 注意,上面的示例适用于jQuery v1.6.3,使用的是jQuery 1.7.1 jQuery.event.dispatch而不是jQuery.event.handle
票数 3
EN

Stack Overflow用户

发布于 2013-01-17 08:20:55

您可以使用window.onerrorhttps://developer.mozilla.org/en-US/docs/DOM/window.onerror

代码语言:javascript
复制
window.onerror = function errorHandler(msg, url, line) {

  console.log(arguments);

  // Just let default handler run.
  return false;
}
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14374719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档