Syntaxe JavaScript - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Exceptions

A partir de Internet Explorer 5 et Netscape 6, les implémentations de Javascript comportent une instruction try ... catch ... finally pour la gestion des exceptions, c'est-à-dire les erreurs en cours d'exécution. Cette instruction traite les exceptions provoquées par une erreur ou par une instruction de levée d'exception.

La syntaxe est la suivante :

      try {        // instructions pouvant déclencher une exception      } catch(erreur) {        // instructions à exécuter en cas d'exception      } finally {        // instructions à exécuter dans tous les cas      }      

D'abord, les instructions du bloc try s'exécutent.

  • si pendant l'exécution du bloc try une exception est déclenchée, l'exécution passe au bloc catch et le code de l'exception est passé dans le paramètre. A la fin du bloc catch, l'exécution continue dans le bloc finally
  • si aucune exception ne se déclenche, le bloc catch est ignoré et l'exécution passe au bloc finally

Le bloc finally sert souvent à libérer la mémoire, pour éviter qu'elle ne reste bloquée lors d'une erreur fatale, même si ce souci ne se pose guère dans Javascript.

Exemple :

      try {        tablo = new Array();               // création d'un tableau        fonctionRisquee(tablo);            // appel d'une fonction qui peut ne pas fonctionner      }      catch (...) {        logError();                        // traitement des erreurs éventuelles      }      finally {        delete tablo;                      // libération de la mémoire occupée par tablo même en cas d'erreur fatale      }      

Le bloc finally est facultatif :

       try {         // instructions       }       catch (erreur) {         // instructions       }      

Le bloc catch est lui aussi facultatif. Dans ce cas, si une exception se déclenche, l'exécution quitte le bloc try et passe au bloc finally sans que l'erreur soit traitée.

       try {         // instructions       }       finally {         // instructions       }      

Attention : il est obligatoire d'avoir au moins l'un des deux blocs catch ou finally, ils ne peuvent pas être absents tous les deux.

       try { instruction; }                              // erreur      

Si vous utilisez le bloc catch, le paramètre est obligatoire, même si vous ne l'utilisez pas dans le bloc.

       try { instruction; } catch() { instruction; }    // erreur      

Sous Mozilla il est permis d'avoir plusieurs instructions catch. Il s'agit d'une extension au standard ECMAScript. Dans ce cas, la syntaxe est similaire à celle de Java :

      try { instruction; }      catch ( e if e == "InvalidNameException"  ) { instruction; }      catch ( e if e == "InvalidIdException"    ) { instruction; }      catch ( e if e == "InvalidEmailException" ) { instruction; }      catch ( e ) { instruction; }      
Page générée en 0.086 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise