鉴于以下内容:
var str = "apples";
try {eval(str)}
catch(e) {document.write('BAD CODE: '+e.name + ': '+e.message)}
代码工作正常,错误消息打印正确,但是,当在Firebug下运行时,执行暂停并且Firebug弹出并且说“苹果未定义”#39;。这不应该发生,因为错误被包含在try-catch宏中。
Try-catch正确捕获其他错误,例如TypeError和SyntaxError,并阻止它们在Firebug中弹出。但是,它不会捕获ReferenceError。
所有其他浏览器正确捕获ReferenceError。
问题:为什么try-catch无法捕获此错误?这是Firebug中的实际错误吗?