Window : évènement unhandledrejection
L'évènement unhandledrejection est envoyé à la portée globale d'un script lorsqu'une Promise JavaScript qui n'a pas de gestionnaire de rupture est rompue ; typiquement, il s'agit de la window, mais cela peut également être un Worker.
Ceci est utile pour le débogage et pour fournir une gestion des erreurs de secours dans des situations inattendues.
Syntaxe
Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'évènement.
addEventListener("unhandledrejection", (event) => { })
onunhandledrejection = (event) => { }
Type d'évènement
Un objet PromiseRejectionEvent. Hérite de Event.
Alias des gestionnaires d'évènements
En plus de l'interface Window, la propriété de gestionnaire d'évènement onunhandledrejection est également disponible sur les cibles suivantes :
Notes d'utilisation
Permettre à l'évènement unhandledrejection de se propager entraîne éventuellement l'affichage d'un message d'erreur dans la console. Vous pouvez empêcher cela en appelant preventDefault() sur le PromiseRejectionEvent ; voir Empêcher de la gestion par défaut ci-dessous pour un exemple.
Parce que cet évènement peut divulguer des données, les promesses (Promise) rompues qui proviennent d'un script inter-origine ne déclenchent pas cet évènement.
Exemples
>Journaliser simplement les erreurs
Cet exemple journalise des informations sur la promesse rompue non gérée dans la console.
window.addEventListener("unhandledrejection", (event) => {
console.warn(`PROMESSE ROMPUE NON GÉRÉE : ${event.reason}`);
});
Vous pouvez également utiliser la propriété de gestionnaire d'évènement onunhandledrejection pour configurer l'écouteur d'évènements :
window.onunhandledrejection = (event) => {
console.warn(`PROMESSE ROMPUE NON GÉRÉE : ${event.reason}`);
};
Empêcher la gestion par défaut
De nombreux environnements (tels que Node.js) signalent par défaut les promesses rompues non gérées dans la console. Vous pouvez empêcher cela en ajoutant un gestionnaire pour les évènements unhandledrejection qui—en plus de toute autre tâche que vous souhaitez effectuer — appelez preventDefault() pour annuler l'évènement, l'empêchant de remonter pour être traité par le code de journalisation de l'environnement d'exécution. Cela fonctionne parce que unhandledrejection est annulable.
window.addEventListener("unhandledrejection", (event) => {
// code pour gérer la promesse rompue non gérée
// …
// Empêche la gestion par défaut (comme l'affichage de
// l'erreur dans la console)
event.preventDefault();
});
Spécifications
| Spécification |
|---|
| HTML> # event-unhandledrejection> |
| HTML> # handler-window-onunhandledrejection> |
Compatibilité des navigateurs
Voir aussi
- Les évènements liés à la rupture d'une promesse
- L'évènement
rejectionhandled - L'objet natif
Promise