Exceptions silencieuses

De RAD Studio
Aller à : navigation, rechercher

Remonter à Gestion des exceptions - Index

Les applications VCL gèrent la plupart des exceptions qui ne sont pas gérées spécifiquement dans votre code en affichant une boîte de message qui affiche la chaîne de message de l'objet exception. Vous pouvez également définir des exceptions "silencieuses" pour lesquelles, par défaut l'application n'affiche pas le message d'erreur.

Les exceptions silencieuses sont utiles quand vous ne voulez pas signaler l'exception à l'utilisateur, mais simplement abandonner l'opération. L'abandon d'une opération est semblable à l'utilisation des procédures Break et Exit pour sortir d'un bloc, mais elle permet de sortir de plusieurs niveaux de blocs imbriqués.

Les exceptions silencieuses descendent toutes du type d'exception standard EAbort. Le gestionnaire d'exception par défaut des applications VCL affiche la boîte de dialogue de message d'erreur pour toutes les exceptions qu'il reçoit sauf pour celles qui dérivent de EAbort.

Remarque :  Dans les applications console, la boîte de dialogue d'erreur est affichée pour toutes les exceptions EAbort non gérées.

Il y a un moyen rapide de déclencher des exceptions silencieuses. Au lieu de construire l'objet manuellement, vous pouvez appeler la procédure Abort. Abort déclenche automatiquement une exception EAbort qui sort de l'opération en cours sans afficher de message d'erreur.

Remarque :  Il y a une différence entreAbort et abort. abort détruit l'application.

L'exemple suivant propose un exemple simple d'abandon d'une opération. Dans une fiche contenant une boîte liste vide et un bouton, attachez le code suivant à l'événement OnClick du bouton :

 procedure TForm1.Button1Click(Sender: TObject);
 var
 I, J: Integer;
 begin
   for I := 1 to 10 do{ boucler dix fois }
     for J := 1 to 10 do {boucler dix fois }
     begin
       ListBox1.Items.Add(IntToStr(I) + IntToStr(J));
       if I = 7 then Abort;{ arrêter après la septième itération de la boucle externe }
     end;
 end;

Dans cet exemple, Abort oblige le déroulement de l'exécution à sortir des boucles interne et externe, pas seulement de la boucle interne.

Voir aussi