перехват и регистрация исключений javascript «bugfoot» - PullRequest
1 голос
/ 19 августа 2010

У нас были некоторые сообщения о проблемах с нашим оформлением заказа, когда клиенты получают js-исключения (мы предполагаем), поэтому они не могут оформить заказ.

Независимо от того, сколько тестовых стендов мы используем, нам не удалось воссоздать проблемы, носмысл упражнения.

Я настроил простую функцию перехвата ошибок, которая работает на основе:

window.onerror = function(message, url, line, chr) {
    new Request({
        url: "/errorTrap.php",
        data: {
            m: message,
            u: url,
            l: line,
            c: chr
        },
        method: "get",
        onComplete: function() {
            // perhaps save the rendered html source via a second POST request?    
            alert("done");
        }
    }).send();
    return true;
};

Конечно, за одну неделю я получил 8 писем с сообщениями об исключениях.

К сожалению, страница оформления заказа очень динамичная.Он содержит НЕКОТОРЫЙ встроенный javascript, многие из которых являются внешними файлами и классами .js, а некоторые оцениваются js через ответы ajax.Длина страницы различается в зависимости от товаров в корзине, параметров доставки, информации в адресной книге и т. Д.

Вот почему исключение «Ожидаемый объект» в строке 253 очень мало значит, поскольку оно не помогает мне понять, какая функция вызвала исключение, или не предоставляет контекст блока скрипта / исходного кода, который идет с ним..

Я думал о выполнении второго XHR-запроса, который может отбрасывать innerHTML document.body в обработчик ajax и, таким образом, предоставлять относительную нумерацию строк и контент, который мог вызвать проблему.

Это единственное улучшение в отслеживании, которое я могу сделать?Есть ли какие-нибудь решения для этого "там"?

Вот jsfiddle, который демонстрирует обработку исключений http://www.jsfiddle.net/dimitar/8hqrY/

1 Ответ

0 голосов
/ 15 июля 2012

Ну, отладка проблемы всегда такая.Либо отправившись туда, на самом деле увидев проблему, а затем решив ее с помощью инструментов отладки, либо получив доказательства, догадки, собрав дополнительные свидетельства и так далее, в стиле Шерлока Холмса: ^)

Помимо дерева DOM, вы можетеТрассировка стека JS: Трассировка стека Javascript в любом браузере .

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