Exception delphi et "try exept"

Vin-s Messages postés 9 Date d'inscription jeudi 4 octobre 2001 Statut Membre Dernière intervention 9 mars 2004 - 9 mars 2004 à 11:24
cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 - 10 mars 2004 à 08:48
Bonjour,
Cette question s'adresse aux spécialistes de l'environment delphi.
j'ai un code comme ca: (soit dit en passant: "who" est un TCustomControl )

try
   who.ma_methode;
   except
   // rien
   end;
who := nil;


"who" est une variable global qui pointe sur un TCustomControl quelconque.
J'ai mis l'execution de "ma_methode" dans un bloc "try except"
car il est possible que "who" soit libéré de l'extérieur.
(par la destruction d'une form)

La fonction contenant ce code doit simplement executer "ma_methode"
de "who" puis, intialiser "who" à nil. (pas le libérer).

Aucun messages d'erreurs n'apparaient si le programme est executé en dehors
de delphi puisque "ma_methode" est contenu dans un "try except".
tout fonctionne parfaitement bien ;)

Le problème c'est qu'à chaque fois que l'execution se déclenche, delphi
stope l'execution du programme. Je dois tout le temps taper F9. c'est
vraiment lourd.

Comment expliquer à delphi qu'il ne faut pas stopper l'execution du programme
pour cette exception ?
Vin-s

3 réponses

cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
9 mars 2004 à 17:38
Tu peux ajouter dans 'Options du débugger' dans la 'liste des exceptions a ignorer' le type d'exception qui te pose problème.
0
Vin-s Messages postés 9 Date d'inscription jeudi 4 octobre 2001 Statut Membre Dernière intervention 9 mars 2004
9 mars 2004 à 18:58
"Arrêter sur l'execution delphi" ---> c'est un peu radical :-/
J'ai vachement réfléchi et j'en pense ca:
Une exception c'est une erreur. Il vaut mieux se prendre
un peu la tête à prévenir le déclenchement d'une exception
plutôt que de demander à delphi de ne pas réagir.

Je ne vais donc me servir des exceptions que comme des
assertions C.

Pour répondre à ma question (haha) , je vais faire en sorte
de passer "who" à nil à la destruction de l'object sur lequel
il pointe histoire de pouvoir faire un test genre
if who <> nil then ...
merci pour l'astuce. ca peut servir (activeX qui déclenche des
exceptions par exemple...)
Bon code.
Vin-s
0
cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
10 mars 2004 à 08:48
Tu voulais une solution qui d'évite de faire F9 a chaque fois, donc ma solution est utile en débugge, en exécution normale l'exception serai remonté normalement.

Et au lieu de who <> nil tu peux utiliser Assigned.
0
Rejoignez-nous