Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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.

js
addEventListener("unhandledrejection", (event) => { })

onunhandledrejection = (event) => { }

Type d'évènement

Un objet PromiseRejectionEvent. Hérite de Event.

Event PromiseRejectionEvent

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.

js
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 :

js
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.

js
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