Neueste Web-Entwicklung Tutorials
 

JavaScript Fehler - Werfen und versuchen zu fangen


Der try Anweisung können Sie einen Code - Block auf Fehler testen.

Die catch - Anweisung können Sie den Fehler behandeln.

Die throw - Anweisung können Sie benutzerdefinierte Fehler erstellen.

Die finally - Anweisung können Sie Code ausführen, nach Versuch und fangen, unabhängig vom Ergebnis.


Fehler wird geschehen!

Bei der Ausführung von JavaScript-Code können verschiedene Fehler auftreten.

Fehler können Fehler, die durch den Programmierer vorgenommen werden Codierung, Fehler aufgrund von Fehleingaben und andere unvorhersehbare Dinge:

Beispiel

<!DOCTYPE html>
<html>
<body>

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

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

</body>
</html>
Versuch es selber "

In dem obigen Beispiel haben wir einen Fehler im Code (im try - Block) gemacht.

Der catch Block fängt den Fehler und führt den Code es zu handhaben .


JavaScript try und catch

Der try Anweisung können Sie einen Code - Block zu definieren , auf Fehler getestet werden , während es ausgeführt wird.

Die catch - Anweisung können Sie einen Code - Block zu definieren ausgeführt werden, wenn ein Fehler im try - Block auftritt.

Die JavaScript - Anweisungen try und catch kommen paarweise:

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

JavaScript-Fehler Raise

Wenn ein Fehler auftritt, wird JavaScript normalerweise stoppen und eine Fehlermeldung generiert.

Der Fachbegriff hierfür lautet: JavaScript wird erhöhen (oder werfen) eine Ausnahme.


Die throw - Anweisung

Die throw - Anweisung können Sie einen benutzerdefinierten Fehler zu erstellen.

Technisch gesehen kann man (werfen) eine Ausnahme ausgelöst.

Die Ausnahme kann ein JavaScript-String, eine Zahl, ein Boolean oder ein Objekt:

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

Wenn Sie throw zusammen mit try und catch , können Sie Programmfluss zu steuern und benutzerdefinierte Fehlermeldungen generieren.


Eingabevalidierung Beispiel

Dieses Beispiel untersucht Eingabe. Wenn der Wert falsch ist, wird eine Ausnahme (err) geworfen.

Die Ausnahme (err) wird durch die catch-Anweisung und eine benutzerdefinierte Fehlermeldung angezeigt wird gefangen:

<!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>
Versuch es selber "

HTML Validation

Der obige Code ist nur ein Beispiel.

Moderne Browser wird oft eine Kombination von JavaScript verwenden und HTML-Validierung-in gebaut, im HTML-Attribute definiert vordefinierte Validierungsregeln:

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

Sie können mehr über Formen Validierung in einem späteren Kapitel dieses Tutorial.


Die finally Statement

Die finally Anweisung können Sie Code ausführen, nach try und catch , unabhängig vom Ergebnis:

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
}

Beispiel

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 = "";
    }
}
Versuch es selber "