DELPHI try except?

DELPHI try except? - Programmation

Marsh Posté le 05-10-2001 à 11:18:06    

J'arrive pas à intercepter l'exception, j'ai qd même droit un msg barbare
 try
          chaineRecu := StrToInt(delai);
       except
       on EConvertError do
             ShowMessage('C tout planté';)
       else
       begin
             WHILE  (chaineRecu>12) OR (chaineRecu<0)  DO // Tant que le délai est plus grand que 12
             begin
               ShowMessage('Délai de rappel trop grand! Valeurs autorisées [0..12]';); //Message d'erreur
               reponseRappel:=InputQuery('Délai de rappel', 'Entrer le délai de rappel des factures (en mois)', delai);
             end;
             IF reponseRappel=TRUE THEN //Si l'utilisateur clique sur OK
                begin
                     Data.TParametres.FieldByName('ParRappel';).asInteger:=StrToInt(delai);
                     Data.TParametres.Post; //Insertion de l'information
                end
             ELSE
                 data.TParametres.Cancel; //On annule les modifications non encore insérées
       end;
       end;


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 05-10-2001 à 11:18:06   

Reply

Marsh Posté le 05-10-2001 à 11:56:47    

utilise StrToIntDef à la place de StrToInt, la syntaxe est :  
 
function StrToIntDef(const S: string; Default: Integer): Integer;
 
le paramètre default est retourné si une erreur se produit lors de l'évaluation, comme cela plus d'exception à gérer c'est plus simple et plus propre.
 
StrToIntDef est dans l'unit SysUtils
 
pense aussi à remplacer Data.TParametres.FieldByName('ParRappel';).asInteger:=StrToInt(delai); par Data.TParametres.FieldByName('ParRappel';).asInteger:=chainerecu
 
a mon avis c'était là que se produisait l'exception car tu avais oublié de protéger la zone

Reply

Marsh Posté le 05-10-2001 à 12:13:34    

je veux pas une val par defaut, je veux que si c pas bon (l'utilisateur a mis du txt par exemple) je dise c pas bon, RECOMMENCE


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 05-10-2001 à 12:14:07    

d'ou intercepter l'expection, mais ça marche po bien


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 05-10-2001 à 13:45:35    

c'est pas si compliqué, il suffit que tu donnes 13 comme valeur par défaut, comme cela si tes utilisateurs entre du texte, strtointdef va te retourner 13 et tu verras bien alors qu'il y a erreur...

Reply

Marsh Posté le 05-10-2001 à 13:49:44    

:ouch: MySQL prend des vacances...
 
/!\ Disclaimer : Le code du forum n'est en rien impliqué dans cette erreur :p /!\
-----
ouais je vais essayé


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed