Exception delphi et "try exept"

Signaler
Messages postés
9
Date d'inscription
jeudi 4 octobre 2001
Statut
Membre
Dernière intervention
9 mars 2004
-
Messages postés
123
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2004
-
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

Messages postés
123
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2004
2
Tu peux ajouter dans 'Options du débugger' dans la 'liste des exceptions a ignorer' le type d'exception qui te pose problème.
Messages postés
9
Date d'inscription
jeudi 4 octobre 2001
Statut
Membre
Dernière intervention
9 mars 2004

"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
Messages postés
123
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2004
2
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.