Try catch throw

L’instruction try-catch-throw est un moyen de gérer les erreurs dans certains langages tels que JavaScript, PHP, Java, C# , Ruby, Python, Go, C, C++.

Le bloc try est l’endroit où vous placez le code qui, selon vous, pourrait provoquer une erreur, jeter une erreur.

Le bloc catch est l’endroit où vous gérez l’erreur.

Le mot-clé throw est utilisé pour lancer une erreur (exception).  Il est généralement utilisé pour gérer les erreurs qui ne peuvent pas être évitées, telles qu’une erreur de réseau ou une erreur de syntaxe. Il peut être utilisé n’importe quel endroit dans le script ou le programme. Il est généralement utilisé dans les blocs try catch.

Où s’affichent les erreurs d’un try catch

Les erreurs capturées à l’intérieur d’un bloc try...catch sont affichées dans la console JavaScript du navigateur. 

try {
  // Code potentiellement problématique
  throw new Error("Ceci est une erreur personnalisée.");
} catch (error) {
  // Gestion de l'erreur
  console.error("Une erreur s'est produite :", error.message);
}

Exemple simple

const input = document.querySelector("input[type=number]");

// Attendre que l'utilisateur ait saisi un nombre

input.addEventListener("input", event => {
  // Vérifier si le nombre est négatif
  const number = event.target.value;

  try {
    if (number < 0) {
      throw new Error("Le nombre doit être positif.");
    }
  } catch (error) {
    console.error(error.message);
  }
});

Avec une requête GET avec API Fetch

// URL de l'API à interroger
const apiUrl = "https://jsonplaceholder.typicode.com/posts";

// Utilisation de la fonction fetch pour effectuer une requête GET
try {
  fetch(apiUrl)
    .then(response => {
      // Vérifier si la réponse est OK (statut HTTP 200)
      if (!response.ok) {
        throw new Error(`Réponse du réseau non valide, statut : ${response.status}`);
      }
      // Convertir la réponse en JSON
      return response.json();
    })
    .then(data => {
      // Traiter les données JSON ici
      console.log("Données récupérées :", data);
    })
    .catch(error => {
      // Gérer les erreurs de réseau ou de traitement des données
      console.error("Une erreur s'est produite :", error);
    });
} catch (error) {
  // Gérer les erreurs de réseau ou de traitement des données
  console.error("Une erreur s'est produite :", error);
}

Sans try : si la requête fetch() échoue, le programme se bloquera.