Najnowsze tutoriale tworzenie stron internetowych
 

JavaScript Błędy - Rzucaj i spróbować złapać


try zestawienie umożliwia testowanie blok kodu w poszukiwaniu błędów.

catch zestawienie pozwala obsłużyć błąd.

throw zestawienie pozwala tworzyć własne błędy.

Ostatecznie zestawienie umożliwia wykonanie kodu, po spróbować połowu, niezależnie od wyniku.


Błędy będzie się działo!

Podczas wykonywania kodu JavaScript, mogą wystąpić różne błędy.

Błędy mogą być błędy popełnione przez programistę, błędy spowodowane niewłaściwym wejścia i innych nieprzewidywalnych rzeczy kodowania:

Przykład

<!DOCTYPE html>
<html>
<body>

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

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

</body>
</html>
Spróbuj sam "

W powyższym przykładzie zrobiliśmy literówkę w kodzie (w bloku try).

catch bloku łapie błąd i wykonuje kod, aby go obsłużyć.


JavaScript try i catch

try zestawienie pozwala zdefiniować blok kodu mają być testowane pod kątem błędów, podczas gdy jest on wykonywany.

catch zestawienie pozwala zdefiniować blok kodu do wykonania, w przypadku wystąpienia błędu w bloku try.

Sprawozdania JavaScript try i catch się w parach:

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

JavaScript może podnieść błędy

W przypadku wystąpienia błędu, JavaScript będzie normalnie zatrzymać, a wygeneruje komunikat o błędzie.

Techniczny termin na to: JavaScript podniesie (lub wyrzucić) wyjątek.


throw komunikat

throw zestawienie pozwala na tworzenie niestandardowego błędu.

Technicznie można podnieść (throw) wyjątek.

Wyjątkiem może być JavaScript String, liczba, Boolean lub Object:

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

Jeśli używasz throw razem z try i catch można sterować przepływem programu oraz generowanie niestandardowych komunikatów o błędach.


Wejście Przykład Validation

Ten przykład bada wejście. Jeżeli wartość ta jest nieprawidłowa, wyjątek (ERR) jest wyrzucany.

Wyjątkiem (ERR) zostaje złapany przez instrukcję catch i wyświetlany jest komunikat o błędzie niestandardowy:

<!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>
Spróbuj sam "

Walidacja HTML

Powyższy kod jest tylko przykładem.

Nowoczesne przeglądarki będą często używać kombinacji JavaScript i wbudowaną walidację HTML, używając predefiniowanych reguł sprawdzania poprawności zdefiniowane w HTML atrybuty:

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

Możesz przeczytać więcej na temat walidacji formularzy w późniejszym rozdziale niniejszego poradnika.


finally komunikat

finally zestawienie pozwala na wykonanie kodu, po try i catch , niezależnie od wyniku:

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
}

Przykład

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 = "";
    }
}
Spróbuj sam "