Bonjour tout le monde,
Ben oui à défaut de pouvoir se chauffer les miches au soleil, je fais chauffer les 2 neurones qui me restent ... Et j'ai une question qui me turlupine depuis un petit moment à vous soumettre:
Ca concerne la structure de gestion des exceptions et plus particulièrement le fameux bloc:
TRY
...
FINALLY
...
END;
Bon comme tout le monde, j'ai lu un peu partout que cette structure assure dans tous les cas l'exécution des instructions comprises entre le FINALLY et le END, erreur ou pas erreur...
OK mais j'ai un sérieux doute dans le cas d'un bout de code qui ressemblerait à celui ci par exemple:
A cause de l'instruction Exit placé dans la boucle - et qui donc force une sortie immédiate de la procédure dans le cas où le test if réussit -, j'ai vraiment un super gros doute que les instructions placées dans le finally end; soient exécutées... puisque cet exit équivaut à un GOTO (qui n'en a pas le nom)
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
18 procedure Tartempion(const FileName: string; const: NombreX: DWord); var RAMStream : TMEmoryStream; zahler : dword; begin RAMStream := TMEmoryStream.Create; RAMStream.LoadFromFile(FileName); try for zahler := 0 to NombreX do begin Intruction N... ; procedure X; if not ValueX or evenement Z then exit; end; finally RAMStream.Free; end;
Quelqu'un parmi vous pourrait-il éclairer ma lanterne à ce sujet ? Merci d'avance et A+++
Partager