ABORT |
Abandonne |
---|---|
Free Pascal | sysutils |
Syntaxe
Procedure Abort; |
Description
Cette procédure permet de terminer un processus sans retourner un code d'erreur.
Remarques
- Interruption immédiate de l'exécution : La fonction Abort permet d'arrêter immédiatement l'exécution du programme et de sortir de la procédure ou de la fonction courante. Cela est utile lorsque l'on rencontre une condition d'erreur grave qui ne permet pas de poursuivre l'exécution normale du programme.
- Comportement de l'exécution : L'appel à Abort génère une exception de type EAbort n'étant pas propagée par défaut. Cela signifie que l'exécution s'arrête dans la procédure ou fonction où Abort est appelée, et l'exécution reprend ensuite au niveau de l'appelant, ou à l'extérieur de la structure d'appel.
- Utilisation avec des blocs try/except : Abort peut être utilisée à l'intérieur d'un bloc try sans provoquer un plantage complet du programme, à condition que l'exception EAbort soit interceptée dans un bloc except. Cela permet de gérer des situations d'abandon en cours d'exécution sans provoquer une fin brutale du programme.
- Contrôle du flux de programme : Lorsqu'un programme est en train de traiter des données, une erreur de logique ou de condition peut être gérée par Abort, qui évitant de poursuivre le traitement des données erronées. Cela permet de maintenir un contrôle plus précis sur le flux de l'application.
- Différence avec Exit : La fonction Abort arrête l'exécution au niveau de la procédure ou fonction sans effectuer de retour de valeur. En revanche, la fonction Exit permet de sortir d'une procédure ou fonction tout en spécifiant une valeur de retour (dans le cas des fonctions). Abort est donc plus radicale et ne permet pas un retour de contrôle.
- Utilisation dans la gestion des erreurs : Abort est souvent utilisée dans des scénarios où une erreur critique empêche la continuation de l'exécution d'un bloc de code, et elle est particulièrement utile dans les systèmes où la gestion des erreurs et des états intermédiaires doit être explicite.
- Effet sur les ressources allouées : Lorsqu'une procédure appelle Abort, les ressources allouées dans cette procédure (par exemple, des fichiers ouverts ou de la mémoire allouée dynamiquement) peuvent ne pas être correctement libérées si l'exécution est interrompue brusquement. Il est donc essentiel de s'assurer que les ressources soient gérées correctement, souvent en les libérant dans des blocs finally.
- Prudence dans l'utilisation : Bien que Abort soit un outil puissant pour gérer des erreurs critiques, son utilisation doit être prudente, car elle peut rendre le code difficile à comprendre et à maintenir, surtout lorsqu'elle est appelée à de multiples endroits sans logique de gestion des erreurs appropriée. Elle est préférable pour des erreurs irrécupérables, mais pas pour un contrôle de flux classique.
Exemple
Dans cet exemple, la fonction CheckPositiveNumber vérifie si le nombre est positif. Si ce n'est pas le cas, elle affiche un message d'erreur et interrompt l'exécution de la fonction avec Abort :
- Program AbortExample1;
-
- {$mode DELPHI}
-
- Uses
- SysUtils;
-
- Function CheckPositiveNumber(Number:Integer):Integer;Begin
- If Number < 0 Then Begin
- WriteLn('Erreur : le nombre doit être positif.');
- Abort; { Interrompt l'exécution de la fonction }
- End;
- CheckPositiveNumber:=Number*2;
- End;
-
- BEGIN
- Try
- WriteLn(CheckPositiveNumber(-5)); { Ceci déclenche Abort }
- Except
- On E: EAbort do WriteLn('Execution interrompue avec EAbort.');
- End;
- END.
Dernière mise à jour : Mardi, le 25 Août 2020