Signalement des erreurs

Comment fonctionne le signalement des erreurs, ce qui est envoyé à l'onglet 'Errors' et comment signaler manuellement les erreurs et les exceptions

Signalement des erreurs

Le signalement des erreurs est très important pour surveiller la stabilité de votre application, repérer les régressions à l’avance et savoir quels problèmes surviennent le plus souvent chez vos utilisateurs. Par défaut, toute exception non interceptée est enregistrée dans l’onglet ‘Errors’ :

Errors Tab

De plus, les erreurs enregistrées apparaîtront également dans l’enregistrement de session, sous l’onglet ‘Console’ dans les DevTools :

Exceptions Tab

Enregistrer manuellement les exceptions

Section titled Enregistrer manuellement les exceptions

Le tracker OpenReplay prend en charge l’enregistrement de 3 types d’erreurs :

Tous les types ci-dessus peuvent être signalés à l’aide d’une seule méthode :

tracker.handleError(error, metaObject); // metaObject is optional and is a flat object

Examinons un exemple pour chaque type d’erreur :

Exceptions interceptées (Error)

Section titled Exceptions interceptées (Error)

Par défaut, les exceptions interceptées ne sont pas enregistrées dans l’onglet ‘Console’. Pour signaler une erreur, nous pouvons procéder comme suit :

try {
    // application code
}
catch(err) {
    // application code that handles the error
    tracker.handleError(error, metaObject); // metaObject is optional and is a flat object
}

Promesses rejetées (PromiseRejectionEvent)

Section titled Promesses rejetées (PromiseRejectionEvent)

Si une Promesse est rejetée et que nous voulons signaler l’erreur à OpenReplay, nous pouvons procéder comme suit :

function myFunc() {
    doSomeAsyncStuff()
    .then((result) => {
        // application code
    })
    .catch(promiseRejectionErr => {
        // application code to handle the error
        tracker.handleError(promiseRejectionErr, metaObject); // metaObject is optional and is a flat object     
    })
}

Cet exemple montrera comment signaler une erreur dans le cas où un élément <img> ne se charge pas :

<img id="myImg" src="image.gif">
<p id="demo"></p>
document.getElementById("myImg").addEventListener("error", myFunction);

function myFunction(errorEvent) {
  document.getElementById("demo").innerHTML = "The image could not be loaded.";
  tracker.handleError(errorEvent, { context: "demo" });
}

Si vous avez des questions concernant ce processus, n’hésitez pas à nous contacter sur notre Slack ou à consulter notre Forum.