Partager via


Instruction try...catch...finally

Implémente la gestion d'erreurs de JScript.

try {
   [tryStatements]
} catch(exception) {
   [catchStatements]
} finally {
   [finallyStatements]}

Arguments

  • tryStatements
    Facultatif. Instructions dans lesquelles peut se produire une erreur.

  • exception
    Obligatoire. Tout nom de variable. La valeur initiale de l'argument exception est la valeur de l'erreur levée.

  • catchStatements
    Facultatif. Instructions pour la gestion des erreurs qui se produisent dans les instructions tryStatements associées.

  • finallyStatements
    Facultatif. Instructions qui sont exécutées de manière non conditionnelle à la fin du traitement de toutes les autres erreurs.

Notes

L'instruction try...catch...finally offre la possibilité de gérer certaines ou toutes les erreurs susceptibles de se produire dans un bloc de code donné, tout en poursuivant l'exécution du code. En présence d'erreurs que le programmeur n'a pas gérées, JScript affiche simplement le message d'erreur normal à l'utilisateur, comme s'il n'y avait pas de gestion d'erreurs.

Les instructions tryStatements contiennent du code susceptible de contenir des erreurs tandis que les instructions catchStatements contiennent du code qui peut gérer toute erreur survenue. Si une erreur survient dans les instructions tryStatements, le contrôle du programme est passé aux instructions catchStatements pour traitement. La valeur initiale de l'argument exception est la valeur de l'erreur levée dans tryStatements. Si le code ne comporte pas d'erreur, les instructions catchStatements ne sont jamais exécutées.

Si l'erreur ne peut pas être gérée dans les instructions catchStatements associées aux instructions tryStatements dans lesquelles s'est produite l'erreur, utilisez l'instruction throw pour propager, ou régénérer, l'erreur vers un gestionnaire d'erreurs de niveau supérieur.

Une fois que toutes les instructions spécifiées dans tryStatements ont été exécutées et que la gestion des erreurs a eu lieu dans catchStatements, les instructions spécifiées dans finallyStatements sont exécutées de manière non conditionnelle.

Notez que le code contenu dans les instructions finallyStatements est exécuté même si les blocs try ou catch comportent une instruction return ou si une erreur est générée dans un bloc catch. Toutes les instructions finallyStatements s'exécuteront à moins qu'une erreur non gérée ne se produise (telle qu'une erreur d'exécution dans le bloc catch ).

Notes

Ce type de situation pouvant prêter à confusion, évitez d'utiliser une instruction return dans un bloc finally. Le code d'un bloc finally est exécuté après que le programme rencontre une instruction return dans un bloc try ou catch, mais avant que cette instruction return soit exécutée. Dans ce cas, une instruction return du bloc finally s'exécute avant (paramètre before) l'instruction return initiale, ce qui génère une valeur de retour différente.

Exemples

Description

L'exemple suivant génère une erreur et affiche le message, le code et le nom correspondant à cette dernière.

Code

try
{
    var arr = new Array(-1);
}
catch(e)
{
    print ("Error Message: " + e.message);
    print ("Error Code: " + (e.number & 0xFFFF))
    print ("Error Name: " + e.name);
}

// Output:
//  Error Message: Array length must be zero or a positive integer
//  Error Code: 5029
//  Error Name: RangeError

Description

L'exemple suivant montre comment fonctionne la gestion des exceptions JScript.

Code

try
    {
    print("Outer try is running");
 
    try
        {
        print("Nested try is running");
        throw new Error(301, "an error");
        }
    catch(e)
        {
        print("Nested catch caught " + e.message);
        throw e;
        }
    finally
        {
        print("Nested finally is running");
        }   
    }
catch(e)
    {
    print("Outer catch caught " + e.message);
    }
finally
    {
    print("Outer finally is running");
    }

// Output:
//  Outer try is running
//  Nested try is running
//  Nested catch caught an error
//  Nested finally is running
//  Outer catch caught an error
//  Outer finally is running

Configuration requise

Version 5

Voir aussi

Référence

throw, instruction

Error, objet