création de type d'exception particulier [Delphi / Exception] - Delphi/Pascal - Programmation
Marsh Posté le 13-12-2005 à 14:01:49
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) |
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" )
Marsh Posté le 13-12-2005 à 15:22:43
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.
Marsh Posté le 12-12-2005 à 16:06:45
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