Section courante

A propos

Section administrative du site

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 :

  1. Program TrySamples;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. Uses SysUtils;
  6.  
  7. Var
  8.  I:Integer;
  9.  
  10. BEGIN
  11.  For I:=-10 to 3 do Begin
  12.   Try
  13.    WriteLn('I = ',I,', 1/I = ',(1 /I):0:2);
  14.   Except
  15.    On EDivByZero do WriteLn('Division par 0');
  16.    On EZeroDivide do WriteLn('Division par 0');
  17.    On EInvalidOp do WriteLn('Instruction invalide');
  18.    On EMathError do WriteLn('Erreur mathématique');
  19.    On EOverflow do WriteLn('Débordement de valeur');
  20.    On E : Exception do WriteLn('Message d''erreur = ',E.Message);
  21.   End;
  22.  End;
  23. END.

on obtiendra le résultat suivant :

I = -10, 1/I = -0.10
I = -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