TRY |
Essai |
---|---|
Delphi/Kylix/Lazarus |
Syntaxe
TRY instructionarisque EXCEPT instruction_exécuté_si_exception END |
TRY instructionarisque EXCEPT ON codeerreur1 DO instructionexception1; ON codeerreur2 DO instructionexception2; ... END |
TRY instructionarisque EXCEPT ON codeerreur1 DO instructionexception1; ON codeerreur2 DO instructionexception2; ... ELSE instructionexceptionpardefaut; END |
TRY instructionpeutetreexecuter FINALLY instruction_exécuté_a_la_fin_meme_si_exception END |
Paramètres
Nom | Description |
---|---|
instructionarisque | Ce paramètre permet d'indiquer les instructions risquant de provoquer une exception. |
instruction_exécuté_si_exception | Ce paramètre permet d'indiquer les instructions exécuter lorsqu'une exception se déclenche. |
codeerreur1, codeerreur2 | Ce paramètre permet d'indiquer le code d'erreur à surveiller. |
instructionexception1, instructionexception2 | Ce paramètre permet d'indiquer l'instruction effectuer lorsque le code d'erreur est détecté. |
instructionexceptionpardefaut | Ce paramètre permet d'indiquer l'instruction exécuter si aucun des codes d'erreurs n'est rencontré. |
instructionpeutetreexecuter | Ce paramètre permet d'indiquer les instructions pouvant être exécuter. |
instruction_exécuté_a_la_fin_meme_si_exception | Ce paramètre permet d'indiquer les instructions devant obligatoirement être exécuter même si une erreur se produit. |
Description
Ce mot réservé permet d'indiquer la partie à traiter tant qu'une exception ne se produit pas.
Exemple
Cet exemple permet d'indiquer comment intercepter une division par 0 :
- Program TrySamples;
-
- {$APPTYPE CONSOLE}
-
- Uses SysUtils;
-
- Var
- I:Integer;
-
- BEGIN
- For I:=-10 to 3 do Begin
- Try
- WriteLn('I = ',I,', 1/I = ',(1 /I):0:2);
- Except
- On EDivByZero do WriteLn('Division par 0');
- On EZeroDivide do WriteLn('Division par 0');
- On EInvalidOp do WriteLn('Instruction invalide');
- On EMathError do WriteLn('Erreur mathématique');
- On EOverflow do WriteLn('Débordement de valeur');
- On E : Exception do WriteLn('Message d''erreur = ',E.Message);
- End;
- End;
- END.
on obtiendra le résultat suivant :
I = -10, 1/I = -0.10I = -9, 1/I = -0.11
I = -8, 1/I = -0.13
I = -7, 1/I = -0.14
I = -6, 1/I = -0.17
I = -5, 1/I = -0.20
I = -4, 1/I = -0.25
I = -3, 1/I = -0.33
I = -2, 1/I = -0.50
I = -1, 1/I = -1.00
I = 0, 1/I = Division par 0
I = 1, 1/I = 1.00
I = 2, 1/I = 0.50
I = 3, 1/I = 0.33
Voir également
Langage de programmation - Delphi/Kylix/Lazarus - Les instructions d'exceptions
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Except
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Finally
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - On
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Raise
Dernière mise à jour : Mercredi, le 18 février 2015