Улучшение нашего сообщения об ошибках JavaScript - PullRequest
8 голосов
/ 20 января 2012

Итак, сейчас у нас есть некоторый общий код для сообщения об ошибках из нашего кода или кода стороннего производителя. Наш проект - проект JQM / PhoneGap для iOS. Происходит то, что мы почти всегда получаем одну и ту же бесполезную ошибку ... Ошибка типа: undefined не является функцией ... без номера строки или другой полезной информации. Есть ли способ, которым я мог бы изменить код, чтобы получить то, ЧТО не определено или ГДЕ это?

window.onerror = function myErrorHandler(errorMsg, url, lineNumber) {
    //Handle errors not in a jquery event handler
    //DebugMessage(errorMSg + " "+ url + " " + lineNumber);
    var ex = new Error(errorMsg, url, lineNumber);
    HandleError(ex, "window.onerror");  
        //HandleError sends the error object to 
        //a webservice to log the error.
    return true;
};

Любые советы по отладке ошибок JavaScript также могут помочь.

Ответы [ 2 ]

1 голос
/ 06 июля 2016

В последние месяцы браузеры расширили сигнатуру window.onerror, чтобы предоставить больше информации.

window.onerror = function(msg, file, line, col, error) {

  // backwards compat
  if (!error) {
    error = new Error(msg);
  }

  // send error to your logger

}

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

Отказ от ответственности: я один из первых авторов TrackJS, поэтому я знаю кучу ошибок JavaScript:)

0 голосов
/ 20 января 2012

Вы слышали о Пульсация ?Это мобильный эмулятор для Chrome, предназначенный для тестирования приложений PhoneGap.

Это может помочь вам найти ошибки до отладки на устройствах.

...