JavaScript spróbuj ... złap ... wreszcie Oświadczenie

W tym samouczku, przy pomocy przykładów, dowiesz się o instrukcjach try… catch… last do obsługi wyjątków w JavaScript.

Te try, catcha finallybloki są używane do obsługi wyjątków (rodzaj błędu). Zanim się o nich dowiesz, musisz wiedzieć o rodzajach błędów w programowaniu.

Rodzaje błędów

Podczas programowania w kodzie mogą występować dwa rodzaje błędów:

Błąd składni : błąd w składni. Na przykład, jeśli piszesz consol.log('your result');, powyższy program zgłasza błąd składniowy. W consolepowyższym kodzie pisownia jest błędna.

Błąd wykonania : ten typ błędu występuje podczas wykonywania programu. Na przykład
wywołanie nieprawidłowej funkcji lub zmiennej.

Te błędy występujące w czasie wykonywania nazywane są wyjątkami . Zobaczmy teraz, jak sobie poradzisz z tymi wyjątkami.

JavaScript try… catch Statement

try… catchOświadczenie jest używany do obsługi wyjątków. Jego składnia to:

 try ( // body of try ) catch(error) ( // body of catch )

Główny kod znajduje się wewnątrz trybloku. Podczas wykonywania trybloku, jeśli wystąpi jakikolwiek błąd, przechodzi do catchbloku. catchBlok obsługuje błędy jak na sprawozdaniach dotyczących połowów.

Jeśli nie wystąpi błąd, wykonywany jest kod wewnątrz trybloku, a catchblok jest pomijany.

Przykład 1: Wyświetl niezadeklarowaną zmienną

 // program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )

Wynik

 NaN Wystąpił błąd Komunikat o błędzie: ReferenceError: a nie jest zdefiniowany

W powyższym programie zmienna nie jest zdefiniowana. Podczas próby wydrukowania zmiennej a program zgłasza błąd. Ten błąd jest wychwycony w catchbloku.

JavaScript spróbuj… złap… wreszcie Oświadczenie

Możesz również użyć try… catch… finallyinstrukcji do obsługi wyjątków. finallyBlok wykonuje zarówno gdy kod przebiega pomyślnie lub jeśli wystąpi błąd.

Składnia try… catch… finallybloku to:

 try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )

Przykład 2: spróbuj… złap… wreszcie Przykład

 const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )

Wynik

 NaN Przechwycony błąd Komunikat o błędzie: Błąd odniesienia: a nie jest zdefiniowany W końcu zostanie wykonany za każdym razem

W powyższym programie występuje błąd i ten błąd jest przechwytywany przez catchblok. finallyBlok wykona w każdej sytuacji (jeśli program działa skutecznie lub jeśli wystąpi błąd).

Uwaga : musisz użyć catchlub finallyoświadczenia po tryoświadczeniu. W przeciwnym razie program zgłosi błąd Uncaught SyntaxError: Missing catch lub ostatecznie po try.

JavaScript spróbuj… złap w setTimeout

try… catchNie złapie wyjątek, jeśli stało się to w „ czasowe ” kod, jak w setTimeout (). Na przykład,

 try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )

Powyższe try… catchnie zadziała, ponieważ silnik już opuścił try… catchkonstrukcję i funkcja jest wykonywana później.

try… catchBlok musi być wewnątrz tej funkcji do połowu wyjątek wewnątrz funkcji czasowej. Na przykład,

 setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);

Możesz również użyć throwinstrukcji z try… catchinstrukcją, aby użyć wyjątków zdefiniowanych przez użytkownika. Na przykład pewna liczba jest dzielona przez 0 . Jeśli chcesz uznać Infinityza błąd w programie, możesz zgłosić wyjątek zdefiniowany przez użytkownika, używając throwinstrukcji do obsługi tego warunku.

Dowiesz się o instrukcji throw JavaScript w następnym samouczku.

Interesujące artykuły...