【发布时间】: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 运行时错误:抛出异常且未捕获”。如果我说“继续”或“忽略”,则不会生成日志消息。
这是一个问题,因为我正在使用的实际代码比这大得多,而且我偶尔会想要调试一些东西。所以两个问题:
- 任何人都知道为什么,我可以用一些我不知道的标志来修改这种行为吗?
- 在这段代码中我是否正在做我认为我正在做的事情(设置全局“onerror”处理程序)?如果不是,捕获此类错误的适当模式是什么?
注意:如果我改用window.onerror,这个问题没有区别。
【问题讨论】:
标签: javascript exception settimeout onerror