JavaScript try ... catch ... finally Déclaration

Dans ce didacticiel, vous découvrirez les instructions try… catch… finally pour gérer les exceptions en JavaScript à l'aide d'exemples.

Les blocs try, catchet finallysont utilisés pour gérer les exceptions (un type d'erreur). Avant d'en apprendre davantage à leur sujet, vous devez connaître les types d'erreurs de programmation.

Types d'erreurs

En programmation, il peut y avoir deux types d'erreurs dans le code:

Erreur de syntaxe : erreur de syntaxe. Par exemple, si vous écrivez consol.log('your result');, le programme ci-dessus génère une erreur de syntaxe. L'orthographe de consoleest une erreur dans le code ci-dessus.

Erreur d'exécution : ce type d'erreur se produit pendant l'exécution du programme. Par exemple,
appeler une fonction ou une variable non valide.

Ces erreurs qui se produisent pendant l'exécution sont appelées des exceptions . Voyons maintenant comment vous pouvez gérer ces exceptions.

Instruction JavaScript try… catch

L' try… catchinstruction est utilisée pour gérer les exceptions. Sa syntaxe est:

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

Le code principal est à l'intérieur du trybloc. Lors de l'exécution du trybloc, si une erreur se produit, elle va au catchbloc. Le catchbloc gère les erreurs selon les instructions catch.

Si aucune erreur ne se produit, le code à l'intérieur du trybloc est exécuté et le catchbloc est ignoré.

Exemple 1: Afficher une variable non déclarée

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

Production

 NaN Une erreur interceptée Message d'erreur: ReferenceError: a n'est pas défini

Dans le programme ci-dessus, aucune variable n'est définie. Lorsque vous essayez d'imprimer la variable a, le programme renvoie une erreur. Cette erreur est prise dans le catchbloc.

JavaScript try… catch… finally Statement

Vous pouvez également utiliser l' try… catch… finallyinstruction pour gérer les exceptions. Le finallybloc s'exécute à la fois lorsque le code s'exécute avec succès ou si une erreur se produit.

La syntaxe de try… catch… finallyblock est:

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

Exemple 2: essayer… attraper… enfin Exemple

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

Production

 NaN Une erreur interceptée Message d'erreur: ReferenceError: a n'est pas défini Enfin s'exécutera à chaque fois

Dans le programme ci-dessus, une erreur se produit et cette erreur est interceptée par le catchbloc. Le finallybloc s'exécutera dans n'importe quelle situation (si le programme s'exécute avec succès ou si une erreur se produit).

Remarque : vous devez utiliser catchou finallyinstruction après tryinstruction. Sinon, le programme lancera une erreur Uncaught SyntaxError: Missing catch ou enfin après try.

JavaScript essayer… catch in setTimeout

Le try… catchn'attrapera pas l'exception si elle s'est produite dans le code " chronométré ", comme dans setTimeout (). Par exemple,

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

Ce qui précède try… catchne fonctionnera pas car le moteur a déjà quitté la try… catchconstruction et la fonction est exécutée plus tard.

Le try… catchbloc doit être à l'intérieur de cette fonction pour intercepter une exception à l'intérieur d'une fonction chronométrée. Par exemple,

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

Vous pouvez également utiliser l' throwinstruction avec l' try… catchinstruction pour utiliser des exceptions définies par l'utilisateur. Par exemple, un certain nombre est divisé par 0 . Si vous souhaitez considérer Infinitycomme une erreur dans le programme, vous pouvez lever une exception définie par l'utilisateur à l'aide de l' throwinstruction pour gérer cette condition.

Vous découvrirez la déclaration JavaScript throw dans le prochain didacticiel.

Articles intéressants...