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

Javascript: Errors arent being displayed on event listeners

本文关键字:事件 侦听器 显示 错误 Javascript      更新时间:2023-09-26

我遇到了一个让我抓狂的问题。我有两个事件侦听器,它们看起来完全相同。使用相同的作用域但在不同的时间调用。我一直在使用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

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

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

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