Надежная обработка исключений Javascript - PullRequest
6 голосов
/ 09 июля 2009

Я занимаюсь разработкой приложения DHTML / Javascript, которое опирается на некоторые расширенные функции (манипулирование DOM, AJAX, Flash-связь и т. Д.). Я очень обеспокоен функциональностью - если возникают проблемы, даже после развертывания приложения, я хочу убедиться, что знаю, почему и как их исправить, а также хочу убедиться, что пользователь сможет продолжать использовать приложение, возможно, с ограниченной функциональностью, если исключение было серьезным.

В настоящее время у меня есть система ведения журналов и обработки исключений, благодаря которой функции могут генерировать журналы, и если исключение обнаруживается, все журналы отправляются мне по электронной почте. Система работает хорошо, но я бы хотел сделать ее более надежной. Я ищу предложения.

Одна из идей, которую я имею, заключается в том, чтобы обернуть тело каждой функции javascript в блок try / catch и при обнаружении исключения зарегистрировать имя функции, а затем выдать ошибку глобальному обработчику. Но это большой код для отслеживания функции, в которой произошло исключение.

Есть идеи, как сделать поиск и воспроизведение исключений во время выполнения?

1 Ответ

4 голосов
/ 09 июля 2009

Вместо добавления N блоков try / catch к функциям N может быть проще использовать событие window.onerror.

JavaScript Kit содержит серию примеров , которые вы можете использовать. Особенно 3-й :

window.onerror = function (msg, url, line) {
  alert('Error message: ' + msg + '\nURL: ' + url + '\nLine Number: ' + line);
  return true;
}

Если вы предпочитаете трассировку стека, вы можете проверить Эрика Венделина (или обновление Люка Смита ) Это одна из немногих известных мне попыток работать кросс-браузерно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...