使用VS2008处理错误

问题描述:

function testFun() { 
    onerror = function() { log("caught the error"); return true; }; 
    setTimeout(function() { throw "bad bad bad"; }, 300); 
}; 

这是示例代码,但它演示了一个问题。 如果我在FF或IE7中运行它,它将打印出明智的“发现错误”消息(假设有一个合理的“日志”功能)。使用VS2008处理错误

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

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

  1. 任何知道为什么,我可以用一些我不知道的标志修改此行为?
  2. 我在做这个代码中我想做的事情(设置全局'onerror'处理程序)吗?如果没有,捕捉这类错误的适当模式是什么?

注意:如果我使用window.onerror代替这个问题没有区别。

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

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

如果这不起作用,你将不得不在我的计时器功能内使用try/catch块。 PS:获取Firefox并使用萤火虫。调试器(和其他所有的东西)是很多比VS调试更好更好用