Derniers tutoriels de développement web
 

JavaScript Erreurs - Throw et essayer d'attraper


L' try de présentation vous permet de tester un bloc de code pour les erreurs.

La catch déclaration vous permet de gérer l'erreur.

La throw déclaration vous permet de créer des erreurs personnalisées.

La déclaration finalement vous permet d' exécuter le code, après try et catch, quel que soit le résultat.


Les erreurs qui se passera!

Lors de l'exécution du code JavaScript, différentes erreurs peuvent se produire.

Les erreurs peuvent être les erreurs commises par le programmeur, des erreurs dues à la mauvaise entrée, et d'autres choses imprévisibles de codage:

Exemple

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
try {
    adddlert("Welcome guest!");
}
catch(err) {
    document.getElementById("demo").innerHTML = err.message;
}
</script>

</body>
</html>
Essayez - le vous - même »

Dans l'exemple ci - dessus , nous avons fait une faute de frappe dans le code (dans le bloc d'essai).

La catch bloc attrape l'erreur, et exécute le code pour le manipuler.


JavaScript try et catch

L' try de présentation vous permet de définir un bloc de code à tester pour les erreurs pendant qu'il est en cours d' exécution.

La catch déclaration vous permet de définir un bloc de code à exécuter, si une erreur se produit dans le bloc try.

Les instructions JavaScript try et catch viennent en paires:

try {
    Block of code to try
}
catch(err) {
    Block of code to handle errors
}

JavaScript peut soulever des erreurs

Lorsqu'une erreur se produit, JavaScript normalement arrêter, et de générer un message d'erreur.

Le terme technique pour cela est: JavaScript va augmenter (ou lancer) une exception.


Le throw Déclaration

La throw instruction vous permet de créer une erreur personnalisée.

Techniquement , vous pouvez augmenter (lancer) une exception.

L'exception peut être une chaîne JavaScript, un numéro, un booléen ou un objet:

throw "Too big";    // throw a text
throw 500;          // throw a number

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


Exemple de validation d'entrée

Cet exemple examine l'entrée. Si la valeur est incorrecte, une exception (err) est levée.

L'exception (err) est pris par la déclaration de capture et un message d'erreur personnalisé est affiché:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>

<script>
function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try {
        if(x == "") throw "empty";
        if(isNaN(x)) throw "not a number";
        x = Number(x);
        if(x < 5) throw "too low";
        if(x > 10) throw "too high";
    }
    catch(err) {
        message.innerHTML = "Input is " + err;
    }
}
</script>

</body>
</html>
Essayez - le vous - même »

validation HTML

Le code ci-dessus est juste un exemple.

Les navigateurs modernes utilisent souvent une combinaison de JavaScript et intégré dans la validation HTML, en utilisant les règles de validation prédéfinies définies dans des attributs HTML:

<input id="demo" type="number" min="5" max="10" step="1"

Vous pouvez en savoir plus sur la validation des formes dans un chapitre ultérieur de ce tutoriel.


La finally Déclaration

La finally déclaration vous permet d' exécuter le code, après try et catch , quel que soit le résultat:

try {
    Block of code to try
}
catch(err) {
    Block of code to handle errors
}
finally {
    Block of code to be executed regardless of the try / catch result
}

Exemple

function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try {
        if(x == "") throw "is empty";
        if(isNaN(x)) throw "is not a number";
        x = Number(x);
        if(x > 10) throw "is too high";
        if(x < 5) throw "is too low";
    }
    catch(err) {
        message.innerHTML = "Error: " + err + ".";
    }
    finally {
        document.getElementById("demo").value = "";
    }
}
Essayez - le vous - même »