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 代替,这个问题没有区别。