JavaScript försök ... fånga ... äntligen uttalande

I denna handledning lär du dig om försöket … fånga … slutligen uttalanden för att hantera undantag i JavaScript med hjälp av exempel.

De try, catchoch finallyblock används för att hantera undantag (en typ av ett fel). Innan du lär dig mer om dem måste du veta om vilka typer av fel i programmeringen.

Typer av fel

Vid programmering kan det finnas två typer av fel i koden:

Syntaxfel : Fel i syntaxen. Om du till exempel skriver skriver consol.log('your result');programmet ovan ett syntaxfel. Stavningen av consoleär ett misstag i ovanstående kod.

Runtime Error : Denna typ av fel inträffar under körningen av programmet. Till exempel att
anropa en ogiltig funktion eller en variabel.

Dessa fel som uppstår under körning kallas undantag . Låt oss nu se hur du kan hantera dessa undantag.

JavaScript försök … fånga uttalande

Det try… catchuttalandet används för att hantera undantagen. Dess syntax är:

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

Huvudkoden finns i tryblocket. tryOm ett fel inträffar, går det till catchblocket medan blocket körs . Den catchblocket hanterar felen som per fångst uttalanden.

Om inget fel uppstår trykörs koden inuti blocket och catchblocket hoppas över.

Exempel 1: Visa odeklarerad variabel

 // 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); )

Produktion

 NaN Ett fel upptäcktes Felmeddelande: ReferenceError: a är inte definierat

I programmet ovan definieras inte en variabel. När du försöker skriva ut en variabel, ger programmet ett fel. Det felet fångas i catchblocket.

JavaScript försök … fånga … äntligen uttalande

Du kan också använda try… catch… finallyuttalandet för att hantera undantag. Den finallyblocket utför både när koden körs utan problem eller om ett fel uppstår.

Syntaxen för try… catch… finallyblocket är:

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

Exempel 2: försök … fånga … äntligen exempel

 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'); )

Produktion

 NaN Ett fel uppstod Felmeddelande: ReferenceError: a är inte definierat Slutligen kommer att köras varje gång

I ovanstående program inträffar ett fel och detta fel upptäcks av catchblocket. Den finallyblocket kommer att utföra i alla situationer (om programmet körs utan problem eller om ett fel uppstår).

Obs : Du måste använda catcheller finallyuttalande efter tryuttalande. I annat fall kommer programmet att kasta ett fel Uncaught SyntaxError: Missing catch or slutligen after try.

JavaScript-försök … fånga i setTimeout

Det try… catchkommer inte att fånga undantaget om det hände i " tidsinställd " kod, som i setTimeout (). Till exempel,

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

Ovanstående try… catchfungerar inte eftersom motorn redan har lämnat try… catchkonstruktionen och funktionen utförs senare.

Den try… catchblocket måste vara inne den funktionen att fånga ett undantag i en tidsfunktion. Till exempel,

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

Du kan också använda throwuttalandet med try… catchuttalandet för att använda användardefinierade undantag. Till exempel divideras ett visst antal med 0 . Om du vill betrakta Infinitysom ett fel i programmet kan du kasta ett användardefinierat undantag med hjälp av throwuttalandet för att hantera det villkoret.

Du lär dig mer om JavaScript-uttalandet i nästa handledning.

Intressanta artiklar...