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
, catch
et finally
sont 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 console
est 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… catch
instruction 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 try
bloc. Lors de l'exécution du try
bloc, si une erreur se produit, elle va au catch
bloc. Le catch
bloc gère les erreurs selon les instructions catch.
Si aucune erreur ne se produit, le code à l'intérieur du try
bloc est exécuté et le catch
bloc 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 catch
bloc.
JavaScript try… catch… finally Statement
Vous pouvez également utiliser l' try… catch… finally
instruction pour gérer les exceptions. Le finally
bloc 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… finally
block 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 catch
bloc. Le finally
bloc 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 catch
ou finally
instruction après try
instruction. Sinon, le programme lancera une erreur Uncaught SyntaxError: Missing catch ou enfin après try.
JavaScript essayer… catch in setTimeout
Le try… catch
n'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… catch
ne fonctionnera pas car le moteur a déjà quitté la try… catch
construction et la fonction est exécutée plus tard.
Le try… catch
bloc 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' throw
instruction avec l' try… catch
instruction pour utiliser des exceptions définies par l'utilisateur. Par exemple, un certain nombre est divisé par 0 . Si vous souhaitez considérer Infinity
comme une erreur dans le programme, vous pouvez lever une exception définie par l'utilisateur à l'aide de l' throw
instruction pour gérer cette condition.
Vous découvrirez la déclaration JavaScript throw dans le prochain didacticiel.