2011-06-27 68 views
2

我在网络应用程序中使用Prototype,并且当抛出异常(包括处理的异常)时我想中断。但是,我不想打破用于流量控制的异常,特别是Prototype的each实现中使用的throw $break模式。

function detect(iterator, context) { 
    var result; 
    this.each(function(value, index) { 
    if (iterator.call(context, value, index)) { 
     result = value; 
     throw $break; // I want to ignore this one 
    } 
    }); 
    return result; 
} 

有谁知道如何让Chrome的调试器忽略特定的异常?或者让它忽略特定行引发的异常?甚至是为了让它在特定文件中不被破解?

回答

3

我很确定没有这样的功能。 documentation看起来相当完整,没有提到它。此外,Chrome开发人员工具使用远程调试协议,其Debugger.setPauseOnExceptions命令没有“文件”参数。这就是说,我没有注意到源代码。

使用Chrome的调试器忽略特定的异常或文件也有助于处理jQuery。它捕获并重新引发事件回调中的任何异常(搜索“resolveWith”),使控制台中的消息基本无用。 jQuery始终在内部抛出并捕获异常,因此打破所有异常会产生太多噪音。