Javascript:错误不会显示在事件侦听器上

时间:2013-07-18 00:39:51

标签: javascript jquery backbone.js

我有一个让我发疯的问题。我有两个看似相同的事件监听器。正在调用具有相同范围但在不同时间调用。我一直在使用chromes调试工具来逐步完成它们。第一个将抛出错误

TypeError: Object 1 has no method 'get'

但第二个例子简单地停止执行

el.on("change:one", function() {
  debugger;
  a = 1;
  a.get();
});

el.on("change:two", function() {
  debugger;
  a = 1;
  a.get();
});

我理解简单问为什么会发生这种情况可能需要详细解释所有正在使用的库等等,所以我的问题是:

是否可以不显示javascript引发的错误,以及如何检测某些内容是否覆盖了错误报告功能

注意:在这两个示例中,我确定window.onerrornull

1 个答案:

答案 0 :(得分:0)

Backbone同步调用事件处理程序,不会捕获处理程序异常。所以如果你的代码看起来像:

el.trigger('change:one'); // handler will throw exception
el.trigger('change:two'); // won't execute

永远不会触发change:two事件,导致您的change:two处理程序永远不会被调用。