W tym samouczku za pomocą przykładów nauczysz się o instrukcjach rzutowania w języku JavaScript.
W poprzednim samouczku nauczyłeś się obsługi wyjątków za pomocą instrukcji try… catch w języku JavaScript. Instrukcje try and catch obsługują wyjątki w standardowy sposób, który zapewnia JavaScript. Można jednak użyć tej throw
instrukcji, aby przekazać wyjątki zdefiniowane przez użytkownika.
W JavaScript throw
instrukcja obsługuje wyjątki zdefiniowane przez użytkownika. Na przykład, jeśli pewna liczba jest podzielona przez 0 i jeśli chcesz wziąć pod uwagę Infinity
wyjątek, możesz użyć throw
instrukcji do obsługi tego wyjątku.
Instrukcja throw JavaScript
Składnia instrukcji throw to:
throw expression;
Tutaj expression
określa wartość wyjątku.
Na przykład,
const number = 5; throw number/0; // generate an exception when divided by 0
Uwaga : Wyrażenie może być ciągiem znaków, wartością logiczną, liczbą lub wartością obiektu.
Wrzuć JavaScript z try… catch
Składnia try… catch… throw
to:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Uwaga : Kiedy wykonywana jest instrukcja throw, wychodzi z bloku i przechodzi do catch
bloku. Kod poniżej throw
instrukcji nie jest wykonywany.
Przykład 1: spróbuj… złap… rzut Przykład
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Wynik
Wystąpił błąd Komunikat o błędzie: Błąd: liczba jest niska
W powyższym programie sprawdzany jest warunek. Jeśli liczba jest mniejsza niż 51 , zgłaszany jest błąd. Ten błąd jest generowany za pomocą throw
instrukcji.
throw
Oświadczenie określa ciąg znaków The number is low
jako wyrażenie.
Uwaga : Można również korzystać z innych wbudowanych błędu konstruktorów dla standardowych błędów: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, i RangeError
.
Na przykład,
throw new ReferenceError('this is reference error');
Ponownie zgłoś wyjątek
Możesz również użyć throw
instrukcji wewnątrz catch
bloku, aby ponownie zgłosić wyjątek. Na przykład,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Wynik
Przechwycony błąd Komunikat o błędzie: Błąd: To jest błąd rzutowania został rozwiązany
W powyższym programie throw
instrukcja jest używana w try
bloku do przechwytywania wyjątku. Oraz throw
oświadczenie rethrown w catch
bloku, który zostanie wykonany, gdy catch
blok nie może obsłużyć wyjątek.
Tutaj catch
blok obsługuje wyjątek i nie występuje błąd. W związku z tym throw
oświadczenie nie zostało powtórzone.
Jeśli błąd nie został obsłużony przez blok catch, instrukcja throw zostanie ponownie wygenerowana z komunikatem o błędzie Uncaught Error: The value is low