Bonjour,
Je travaille avec Delphi depuis plusieurs années alors je me sens un peu con de poser ma question...
J'ai testé les fonctions suivantes sous Delphi 7 et Delphi 2007 (projets Win32) et les résultats sont identiques.
Question #1 : Pourquoi est-ce que la fonction ci-dessous me retourne 1 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function MonTestInt: integer; begin try Result := 1; Exit; finally Result := 2; end; Result := 3; end;
Question #2 : Si la fonction précédente me retourne 1, pourquoi est-ce que la fonction ci-dessous me retourne '2' (code semblable, mais avec des strings) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function MonTestStr: string; begin try Result := '1'; Exit; finally Result := '2'; end; Result := '3'; end;
Question #3 (c'est ma vraie question ) : Pourquoi est-ce que le code suivant affiche l'avertissement « W1035 Return value of function 'MonTestInt' might be undefined » ?
Est-ce que je dois changer ma façon de travailler avec les try/finally ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function MonTestInt: integer; begin try Exit; finally Result := 2; end; end;
Merci!
Partager