Ecriture du bloc try

De RAD Studio
Aller à : navigation, rechercher

Remonter à Définition des blocs protégés


La première partie d'un bloc protégé est le bloc try. Le bloc try contient du code à même de déclencher une exception. L'exception peut être déclenchée soit directement dans le bloc try, soit par du code appelé par les instructions du bloc try. Cela signifie que si du code d'un bloc try appelle une routine ne définissant pas son propre gestionnaire d'exception, toute exception déclenchée dans cette routine provoque alors l'exécution du gestionnaire d'exception associé au bloc try. N'oubliez pas que votre code n'est pas seul à générer des exceptions. L'appel d'une routine RTL ou d'un autre composant de votre application peut aussi déclencher une exception.

L'exemple suivant illustre l'interception d'une exception déclenchée à partir d'un objet TFileStream.

 procedure TForm1.Button1Click(Sender: TObject);
 var
   fileStream: TFileStream;
 begin
      try
         (* Essaie d'ouvrir un fichier inexistant *)
         fileStream := TFileStream.Create('NOT_THERE.FILE', fmOpenRead);
 								(* Traite le contenu du fichier... *)
         fileStream.Free;
      except
         on EFOpenError do ShowMessage('EFOpenError déclenchée');
      else
         ShowMessage('Exception déclenchée');
      end;
 end;

L'utilisation d'un bloc try améliore la lisibilité de votre code. Au lieu de parsemer votre programme de code de gestion d'erreur, vous isolez celui-ci dans des gestionnaires d'exceptions, clarifiant ainsi le déroulement de vos algorithmes.

Cela s'avère particulièrement utile lors de l'exécution de calculs complexes faisant intervenir des centaines d'étapes, chacune pouvant échouer si un des paramètres parmi une douzaine est invalide. En utilisant des exceptions, vous pouvez exprimer la forme normale de votre algorithme puis, après, définir les cas exceptionnels pour lesquels elle n'est pas applicable. Sans les exceptions, vous devez effectuer un test à chaque fois pour vous assurer que vous pouvez effectuer l'étape suivante du calcul.

Pour plus d'informations sur le déclenchement d'exceptions à partir du code dans le bloc try, voir Déclenchement d'une exception.

Voir aussi