为了调试一些概念,我在Chrome控制台运行这个:
what = function(){
let value = 5
try {
wrong();
} catch(e) {
console.log('bad');
value += 1
}
return value
}
what()
# returns 6
工作如预期,除了console.log('bad')
从未发生。
很明显,value = 6而不是5证明了block被调用了
为什么控制台会跳过console.log ?我很确定我已经将JS注入到console.log工作的应用程序中,所以这可能是控制台窗口本身的设置。Firefox的行为是相同的。
我最好的猜测是,因为它在两个平台上都不起作用,它是一个阻止它的扩展——从另一个stackoverflow帖子来看,它可能是firebug lite或您通过过滤器不小心禁用了它。
如果这些都不工作,我建议尝试一个客人窗口,看看它是否在那里工作。
我不能在我自己的机器上复制这个,以及其他人:Chrome 102.0.5005.61(官方版本)(64位)(队列:102_win_control)
它正在工作!删除最后一行它会起作用的!如果它仍然不起作用,那么它可能被扩展名
阻塞。