Wyrażenie try/catch/finally w JavaScript
- Poprzednia strona throw
- Następna strona var
- Wróć do poprzedniego poziomu Podręcznik referencyjny instrukcji JavaScript
Definicja i użycie
Wyrażenie try/catch/finally obsługuje częściowe lub całe błędy, które mogą wystąpić w bloku kodu, jednocześnie pozwalając na kontynuowanie wykonywania kodu.
Błędy mogą być spowodowane przez błędy w kodzie programisty, błędne wejścia oraz inne nieprzewidywalne sytuacje.
Wyrażenie try pozwala na zdefiniowanie bloku kodu, który ma być przetestowany na błędy w trakcie wykonywania.
Jeśli w bloku try wystąpi błąd, zdanie catch pozwala na zdefiniowanie bloku kodu do wykonania.
Zdanie finally pozwala na wykonanie kodu po try i catch, niezależnie od wyniku.
Komentarz:Zdania catch i finally są opcjonalne, ale w użyciu polecenia try należy użyć jednego z nich (jeśli nie używasz obu jednocześnie).
Wskazówka:W przypadku wystąpienia błędu, JavaScript zazwyczaj zatrzymuje się i generuje komunikat o błędzie. Użyj polecenia throw, aby utworzyć niestandardowe błędy (wyrzucić wyjątek). Jeśli użyjesz throw z try i catch, możesz kontrolować przepływ programu i generować niestandardowe komunikaty o błędach.
Aby uzyskać więcej informacji o błędach JavaScript, przejdź do tutoriala o błędach JavaScript.
Przykład
W tym przykładzie, w kodzie (w bloku try) zrobiliśmy błąd w pisowni.
Ten przykład powinien wyświetlić "Welcome guest!", ale wystąpił błąd w pisowni alert.
Blok catch będzie łapał błędy i wykonywał kod do ich obsługi:
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Welcome guest!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
Poniżej znajduje się więcej przykładów TIY.
Gramatyka
try { tryCode - Blok kodu do próby } catch(err) { catchCode - Blok kodu do obsługi błędów } finally { finallyCode - Blok kodu do wykonania niezależnie od wyniku try / catch }
Wartość parametru
Parametr | Opis |
---|---|
tryCode | Wymagane. Blok kodu do testowania błędu w trakcie wykonywania. |
err | Wymagane, jeśli używane z catch. Określa lokalną zmienną odnoszącą się do błędu. Zmienna może odnosić się do obiektu Error (zawierającego informacje o wystąpieniu błędu, na przykład wiadomość "'addlert' is not defined"). Jeśli wyjątek został utworzony za pomocą polecenia throw, zmienna odnosi się do obiektu określonego w poleceniu throw (zobacz "Więcej przykładów"). |
catchCode | Opcjonalne. Blok kodu do wykonania w przypadku wystąpienia błędu w bloku try. Jeśli nie wystąpi błąd, ten blok kodu nigdy nie zostanie wykonany. |
finallyCode | Opcjonalne. Blok kodu do wykonania niezależnie od wyniku try / catch. |
Szczegóły techniczne
Wersja JavaScript: | ECMAScript 3 |
---|
Więcej przykładów
Przykład
Ten przykład sprawdza wprowadzenie. Jeśli wartość jest błędna, rzuca wyjątek (err).
catch pozwala na przechwycenie wyjątków (err) i wyświetlenie niestandardowych komunikatów błędów:
<!DOCTYPE html> <html> <body> <p>Proszę wprowadź liczbę między 5 a 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Test Wprowadzenia</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 "Pusty"; if(isNaN(x)) throw "Nie liczba"; if(x > 10) throw "Za wysokie"; if(x < 5) throw "Za niskie"; } catch(err) { message.innerHTML = "Wprowadzenie " + err; } } </script> </body> </html>
Przykład
finally zapis pozwala na wykonanie kodu po try i catch, niezależnie od wyniku:
function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Pusty"; if(isNaN(x)) throw "Nie liczba"; if(x > 10) throw "Za wysokie"; if(x < 5) throw "Za niskie"; } catch(err) { message.innerHTML = "Błąd: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
obsługiwany przez przeglądarkę
zwykły | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | Wsparcie | Wsparcie | Wsparcie | Wsparcie | Wsparcie |
- Poprzednia strona throw
- Następna strona var
- Wróć do poprzedniego poziomu Podręcznik referencyjny instrukcji JavaScript