Учитывая следующее:
var str = "apples";
try {eval(str)}
catch(e) {document.write('BAD CODE: '+e.name + ': '+e.message)}
Код работает нормально, сообщение об ошибке выводится правильно, однако при запуске под Firebug выполнение останавливается, и Firebug всплывает и выдает сообщение «Яблоко не определено». ЭТО НЕ ДОЛЖНО БЫТЬ, так как ошибка заключена в макрос try-catch.
Try-catch правильно отлавливает другие ошибки, такие как TypeError и SyntaxError, и предотвращает их появление в Firebug. Однако, это не перехватывает ReferenceError.
Все остальные браузеры корректно перехватывают ReferenceError.
Вопрос: почему try-catch не может перехватить эту ошибку? Это настоящая ошибка в Firebug?