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 throwinstrukcji, aby przekazać wyjątki zdefiniowane przez użytkownika.
W JavaScript throwinstrukcja 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ę Infinitywyjątek, możesz użyć throwinstrukcji do obsługi tego wyjątku.
Instrukcja throw JavaScript
Składnia instrukcji throw to:
throw expression;
Tutaj expressionokreś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… throwto:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Uwaga : Kiedy wykonywana jest instrukcja throw, wychodzi z bloku i przechodzi do catchbloku. Kod poniżej throwinstrukcji 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ą throwinstrukcji.
throwOświadczenie określa ciąg znaków The number is lowjako 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ć throwinstrukcji wewnątrz catchbloku, 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 throwinstrukcja jest używana w trybloku do przechwytywania wyjątku. Oraz throwoświadczenie rethrown w catchbloku, który zostanie wykonany, gdy catchblok nie może obsłużyć wyjątek.
Tutaj catchblok obsługuje wyjątek i nie występuje błąd. W związku z tym throwoś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








