function testFun() {
onerror = function() { log("caught the error"); return true; };
setTimeout(function() { throw "bad bad bad"; }, 300);
};
Это пример кода, но он демонстрирует проблему.
Если я запускаю это в FF или IE7, он выводит разумное сообщение «поймал ошибку» (допустим разумную функцию «log»).
Однако, если я отлаживаю код в VS2008, отладчик останавливается на выходе с сообщением: «Ошибка времени выполнения Microsoft JScript: исключение сгенерировано и не перехвачено». Если я говорю «продолжить» или «игнорировать», сообщение журнала не создается.
Это проблема, поскольку реальный код, с которым я работаю, намного больше этого, и я иногда захочу, вы знаете, что-то отлаживать. Итак, два вопроса:
- Кто-нибудь знает, почему и можно ли изменить это поведение с помощью флага, о котором я не знаю?
- Я делаю то, что, как мне кажется, я делаю (устанавливая глобальный обработчик 'onerror') в этом коде? Если нет, то каков подходящий шаблон для обнаружения ошибок такого типа?
Примечание: нет разницы в этой проблеме, если я использую window.onerror.