【问题标题】:onerror handling with VS2008VS2008 的 onerror 处理
【发布时间】:2009-03-01 18:39:19
【问题描述】:
function testFun() {
    onerror = function() { log("caught the error"); return true; };
    setTimeout(function() { throw "bad bad bad"; }, 300);
};

这是示例代码,但它演示了一个问题。 如果我在 FF 或 IE7 中运行它,它会打印出合理的“捕获错误”消息(假设一个合理的“日志”功能)。

但是,如果我在 VS2008 中调试代码,调试器会在抛出时停止并显示以下消息:“Microsoft JScript 运行时错误:抛出异常且未捕获”。如果我说“继续”或“忽略”,则不会生成日志消息。

这是一个问题,因为我正在使用的实际代码比这大得多,而且我偶尔会想要调试一些东西。所以两个问题:

  1. 任何人都知道为什么,我可以用一些我不知道的标志来修改这种行为吗?
  2. 在这段代码中我是否正在做我认为我正在做的事情(设置全局“onerror”处理程序)?如果不是,捕获此类错误的适当模式是什么?

注意:如果我改用window.onerror,这个问题没有区别。

【问题讨论】:

    标签: javascript exception settimeout onerror


    【解决方案1】:

    根据this 定义全局onerror 函数在IE 中不起作用。他们可能在谈论 IE6 或更早版本,所以也许 MS 已经为 IE7 修复了它 - 但我不希望这会自动流向 VS 调试器。

    无论如何,请尝试使用window.onerror = function 而不仅仅是onerror

    如果这不起作用,我猜你必须在计时器函数中使用 try/catch 块。

    PS:获取 firefox 并使用 firebug。调试器(以及其他所有东西)比 VS 调试更好、更好用

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 1970-01-01
      • 2019-03-30
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多