Bonjour,
J'essaie de faire fonctionner une simple expression try except end
voici le code archi simple
Note: SL contient une chaine illégale = '123.45a'
Je trace en mode debug et il ne veux rien savoir et plante à l'instruction TempReal := StrToFloat(SL) sans passer sur l'instruction dans le bloc except = Application.MessageBox ? Il y a bien un message:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Function Parse(L,S: String; Args: array of const): Boolean; ... ... else If Uppercase(SS) = Uppercase('%f') then begin Try TempReal := StrToFloat(SL); { erreur de conversion ici } except Application.MessageBox('Erreur.', 'Look', MB_OK); end; VarArr[ArgNum] := TempReal; Inc(ArgNum); end ... ...
Le projet ... à provoqué une classe d'exeption EConvertError avec le message '123.45A' ...
Je suis peut-être trop fatigué et je ne vois plus rien mais je ne trouve pas, il y a peut-être une directive genre {$I+} qui n'est correcte pourtant j'en ai ajouté aucune dans le code. Il me semble que ca déjà bien fonctionné.
Salut.
Partager