Mini-JS

Mini-JS b_try...-catch

try…catch

Dans un programme, il arrive qu’une erreur apparaisse à l’exécution : une variable mal nommée, un calcul impossible, ou encore une ressource manquante. Si rien n’est prévu, le script s’interrompt immédiatement. Pour éviter ce comportement brutal, JavaScript propose le bloc try...catch.

L’idée est simple : on place le code susceptible de poser problème dans une partie try. Si tout se passe bien, l’exécution continue normalement. Mais si une erreur survient, l’exécution de try s’arrête immédiatement et le programme bascule dans la partie catch. C’est là que l’on peut définir la réaction à adopter : afficher un message, ignorer l’erreur, ou encore déclencher un traitement de secours.

Voici un premier exemple :

try {
  alert("Bienvenue dans notre programme");
  asdk; // Erreur : cette variable n’existe pas
} catch (err) {
  console.log("Une erreur est survenue");
}

Dans cet extrait, l’appel à asdk provoque une erreur. Grâce au try...catch, le script ne s’arrête pas complètement. Le bloc catch intercepte l’erreur et affiche un message dans la console.

Le bloc catch reçoit automatiquement un objet représentant l’erreur. Cet objet possède notamment deux propriétés utiles :

Il est aussi possible de créer et déclencher ses propres erreurs grâce au mot-clé throw. Cela permet, par exemple, d’imposer certaines règles dans le programme et de signaler explicitement lorsqu’elles ne sont pas respectées.

function divide(a, b) {
  if (b === 0) {
    throw new Error("Impossible de diviser par zéro");
  }
  return a / b;
}

try {
  console.log(divide(10, 0));
} catch (err) {
  console.error(err.message);
}

Ici, la fonction déclenche volontairement une erreur si l’on tente de diviser par zéro. Le try...catch permet alors de récupérer cette erreur et d’afficher un message compréhensible.


Limites

Il faut garder à l’esprit que try...catch n’intercepte que les erreurs d’exécution, c’est-à-dire lorsque le code est effectivement lancé. Les erreurs de syntaxe (comme un mot-clé mal écrit) empêchent le script de s’exécuter et ne peuvent pas être capturées par ce mécanisme. De plus, il fonctionne uniquement pour du code synchrone. Pour gérer les erreurs dans du code asynchrone, il faut utiliser les promesses (.catch()) ou la syntaxe async/await, ce qui sera abordé plus loin.


À retenir

Le bloc try...catch permet de rendre un programme plus robuste. Il intercepte les erreurs qui surviennent pendant l’exécution, empêche l’arrêt brutal du script et donne au développeur la possibilité de réagir de manière contrôlée. C’est l’outil de base de la gestion des erreurs en JavaScript, sur lequel viennent ensuite se greffer d’autres techniques pour les cas plus avancés, comme l’asynchrone.


⬅️ Chapitre précédent : La gestion des erreurs

➡️ Chapitre suivant : try…catch…finally