JavaScript Erreurs - throw, try et catch


tryL'instruction teste un bloc de code à la recherche d'erreurs.

catchL'instruction gère les erreurs.

throwL'instruction crée des erreurs personnalisées.

finallyL'instruction s'exécute après les instructions try et catch, indépendamment du fait qu'une exception ait été déclenchée.


Erreurs JavaScript

Lorsque le moteur JavaScript exécute du code JavaScript, diverses erreurs peuvent se produire.

Il peut s'agir d'erreurs de syntaxe, généralement des erreurs de codage ou des fautes de frappe commises par les programmeurs.

Il peut s'agir d'erreurs d'orthographe ou de fonctionnalités manquantes du langage (éventuellement dues à des différences entre navigateurs).

Il peut s'agir d'erreurs causées par une sortie incorrecte du serveur ou de l'utilisateur.

Bien sûr, elles peuvent aussi être dues à de nombreux autres facteurs imprévisibles.


Lever des erreurs en JavaScript (throw)

Lorsqu'une erreur se produit, quand quelque chose ne va pas, le moteur JavaScript s'arrête généralement et génère un message d'erreur.

Le terme technique pour cette situation est : JavaScript vathrowune erreur.


JavaScript try et catch

tryL'instruction permet de définir un bloc de code qui est testé pour les erreurs pendant l'exécution.

catchL'instruction permet de définir un bloc de code à exécuter lorsqu'une erreur se produit dans le bloc try.

Les instructions JavaScripttryetcatchvont par paires.

Syntaxe

try { ... //Lever une exception } catch(e) { ... //Intercepter et gérer une exception } finally { ... //Finalisation }

Exemple

Dans l'exemple suivant, nous avons délibérément écrit une faute de frappe dans le code du bloc try.

Le bloc catch interceptera l'erreur dans le bloc try et exécutera du code pour la gérer.

Exemple

var txt=""; function message() { try { adddlert("Bienvenue invité"); } catch(err) { txt="Cette page contient une erreur.\n\n"; txt+="Description de l'erreur :" + err.message + "\n\n"; txt+="Cliquez sur OK pour continuer.\n\n"; alert(txt); } }

Essayez-le vous-même »

L'instruction finally

L'instruction finally exécute le bloc de code, qu'une exception se soit produite ou non dans le try et le catch précédents.

Exemple

function myFunction() { //Obtenir l'élément const messageElement = document.getElementById("p01"); const inputElement = document.getElementById("demo"); //Effacer le message précédent messageElement.innerHTML = ""; //Obtenir la valeur du champ de saisie et supprimer les espaces const rawValue = inputElement.value.trim(); try { //1. Vérifier si c'est vide if (rawValue === "") { throw new Error("L'entrée ne peut pas être vide. Veuillez saisir un nombre."); } //2. Vérifier s'il s'agit d'un nombre valide if (isNaN(rawValue)) { throw new Error("Veuillez saisir un nombre valide (par ex., 5, 10.5, -3)"); } //Convertir en nombre const x = Number(rawValue); //3. Vérifier s'il s'agit d'un entier (ajustable selon les besoins) if (!Number.isInteger(x)) { throw new Error("Veuillez saisir un entier (les décimales ne sont pas prises en charge)"); } //4. Vérifier la plage du nombre (ajustable selon les besoins) if (x > 10) { throw new Error(`Le nombre ${x}est trop grand, veuillez saisir5-10un nombre compris entre`); } if (x < 5) { throw new Error(`Le nombre ${x}est trop petit, veuillez saisir5-10un nombre entre`); } //5. Vérifier le cas particulier des nombres négatifs if (x < 0) { throw new Error("Veuillez saisir un nombre positif (les nombres négatifs ne sont pas pris en charge)"); } //Toutes les validations ont réussi messageElement.innerHTML= `Validation réussie ! Le nombre que vous avez saisi est : ${x}`; messageElement.style.color = "green"; //D'autres opérations peuvent être exécutées en cas de succès console.log(`L'utilisateur a saisi un nombre valide : ${x}`); } catch (err) { //Afficher le message d'erreur messageElement.innerHTML= `Erreur : ${err.message}`; messageElement.style.color = "red"; //Facultatif : consigner l'erreur dans la console console.error("La validation de l'entrée a échoué :", err.message); } finally { //Qu'il y ait succès ou échec, effacer le champ de saisie inputElement.value = ""; //Facultatif : remettre le focus sur le champ de saisie pour faciliter la nouvelle saisie de l'utilisateur inputElement.focus(); } }



L'instruction throw

L'instruction throw nous permet de créer des erreurs personnalisées.

Le terme technique correct est : créer oulever une exception(exception).

Si vous utilisez throw avec try et catch, vous pouvez contrôler le déroulement du programme et générer des messages d'erreur personnalisés.

Syntaxe

throw exception

L'exception peut être une chaîne, un nombre, un booléen ou un objet JavaScript.

Exemple

Cet exemple vérifie la valeur d'une variable d'entrée. Si la valeur est incorrecte, une exception (erreur) est levée. catch interceptera cette erreur et affichera un message d'erreur personnalisé :

Exemple

function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "La valeur est vide"; if(isNaN(x)) throw "Pas un nombre"; x = Number(x); if(x < 5) throw "Trop petit"; if(x > 10) throw "Trop grand"; } catch(err) { message.innerHTML = "Erreur :" + err; } }

Essayez-le vous-même »

Notez que si la fonction getElementById échoue, l'exemple ci-dessus lèvera également une erreur.

Autres extensions