Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2662 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi / Exception] création de type d'exception particulier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi / Exception] création de type d'exception particulier

n°1264647
k666
dites non à petitmou
Posté le 12-12-2005 à 16:06:45  profilanswer
 

salut
je suis entrain de reprendre un code qui utilise ses propres types d'exceptions;
pour l'linstant j'ai ce type défini:
 
ETimeOut = class(Exception);
 
et partout on s'en sert comme suit:
 
ETimeOut.Create('blabla a timeoutise');
 
ce qui affiche l'exception à l'écran.
 
j'aimerais modifier ce comportement et au lieu de me taper le 'blabla a timeoutise' à l'écran, pouvoir le loguer dans un fichier de log dont j'ai créé déjà la méthode ( TraceMsg(Data: String); )
 
comment on fait pour redéfinir ce comportement facilement ?
 
merci bcp pour votre aide, sachant que je suis tout noob au delphi :)


Message édité par k666 le 12-12-2005 à 16:42:57
mood
Publicité
Posté le 12-12-2005 à 16:06:45  profilanswer
 

n°1265476
Zozol
Posté le 13-12-2005 à 14:01:49  profilanswer
 

Si tu veut loguer les exception sans suprimer le message à l'écran(ce qui ne me parait de toute facon pas souhaitable, puisqu'il apparait uniquement dans le cas d'une exception non géré), c'est assez simple : tu surcharge le constructeur de ton exception.
 

ETimeOut = Class(Exception)
public constructor create(message : string);
.....
constructor ETimeOut.create(message : string);
begin
   TraceMsg(message: String);
   inherited create(message);
end;


 
Le comportement du truc est donc que les exceptions sont logués qu'elle soit ou non gérée par un try/except. Le reste du comportement ne change pas.
Si tu veut que les message n'aparaissent pas, utiise Try...except. Si tu ne maitrise pas les exception sous Delphi, désolé: il va falloir lire la doc  ;)  (rubrique "exception" )


Message édité par Zozol le 13-12-2005 à 17:04:33
n°1265604
antp
Super Administrateur
Champion des excuses bidons
Posté le 13-12-2005 à 15:22:43  profilanswer
 

Tu peux aussi intercepter les exceptions non récupérées : il faut associer une procédure à Application.OnException
Mais comme l'a dit zozol, pour faire ça proprement il faut des try/except autour du code susceptible de déclancher des exceptions, afin de traiter ça au bon endroit.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi / Exception] création de type d'exception particulier

 

Sujets relatifs
[C#, Winforms] Passage d'un contrôle de type 'Form' en paramètre.Type non reconnu
[c,allegro] création d'un plateau de jeu avec allegroDELPHI DBExpress et MySql
[Delphi] VCL de visualisation et calcul scientifiqueCréation d'une petite application en tray
Problème pour création de fonctionComment raisé une exception mais en affichant malgré tout le SQLERRM ?
VBScript de création de repertoire[Delphi] 2005 Personal + XML
Plus de sujets relatifs à : [Delphi / Exception] création de type d'exception particulier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR