Section courante

A propos

Section administrative du site

Les instructions d'exceptions en JavaScript sont au nombre de trois :

TRY ... CATCH ...

L'instruction «TRY» de JavaScript permet d'effectuer la gestion d'une erreur aussi simplement qu'en JavaScript par exemple. On encapsule les instructions à risque entre les mots réservés «TRY» et «CATCH», puis on met le traitement d'erreur après les mots réservés «CATCH». JavaScript, à la manière des vieux interpréteurs Basic comme BASICA et GWBASIC permet d'effectuer une branchement sur les instructions souhaité. Voici enfin sa syntaxe situer dans la zone de traitement d'exception :

try {
 instructionarisque
}
catch(codeerreur1) {
 instructionexception1;
}
catch(codeerreur2) {
 instructionexception2;
}

TRY ... FINALLY ...

Le déclenchement d'exception est parfois dangereux lorsqu'on pense au fait qu'on peut gaspiller des ressources mémoire ou oublier d'arrêter un périphérique par exemple. Il existe une instruction permettant de s'assurer que quoi qu'il arrive un bloc d'instruction sera exécuté même si des problèmes auront lieu. Cette instruction c'est «TRY» et «FINALLY». Contrairement aux instructions «TRY CATCH» s'exécutant que si une exception à lieu, le zone «FINALLY» est assurément exécuté! Voici donc sa syntaxe :

try {
 instructionpeutetreexecuter;
} catch(codeerreur1) {
 instructionexception1;
} finally {
 instruction_exécuté_a_la_fin_meme_si_exception;
}

THROW

Naturellement, une exception peut être déclenché par programmation. L'instruction permettant d'effectuer cette opération est «throw». Voici enfin les deux syntaxes autorisé :

throw codeerreur;

ou

throw message;

Exemple

Cet exemple permet de poursuivre le programme même si la fonction n'existe pas :

  1. <script language="JavaScript" type="text/javascript">
  2. try {
  3.    var a = 0;
  4.    var b = 0;
  5.    a /= b + fonction();
  6. } catch(ex) {
  7.    document.write("Message de l'exception : " + ex + "<br />");
  8. }
  9. </script>

on obtiendra le résultat suivant :

Message de l'exception : ReferenceError: fonction is not defined

Dernière mise à jour : Dimanche, le 12 janvier 2014