Afficher : Delphi
C++
Préférences d'affichage
W1035: La valeur de retour de la fonction '%s' peut être indéfinie (Delphi)
De RAD Studio XE2
Remonter à Messages d'erreur et d'avertissement (Delphi) - Index
Cet avertissement est émis si la valeur renvoyée d'une fonction n'a pas reçu de valeur sur chaque chemin de code.
En d'autres termes, la fonction risque de s'exécuter sans attribuer une valeur à la valeur de retour.
program Produce;
(*$WARNINGS ON*)
var
B: Boolean;
C: (Red,Green,Blue);
function Simple: Integer;
begin
end; (*<-- Avertissement ici*)
function IfStatement: Integer;
begin
if B then
Result := 42;
end; (*<-- Avertissement ici*)
function CaseStatement: Integer;
begin
case C of
Red..Blue: Result := 42;
end;
end; (*<-- Avertissement ici*)
function TryStatement: Integer;
begin
try
Result := 42;
except
Writeln('Ne devrait pas l'obtenir ici!');
end;
end; (*<-- Avertissement ici*)
begin
B := False;
end.
Le problème avec les procédures IfStatement et CaseStatement est que le résultat n'est pas affecté dans chaque chemin de code. Dans TryStatement, le compilateur suppose qu'une exception pourrait être provoquée avant que Result soit affectée.
program Solve;
(*$WARNINGS ON*)
var
B: Boolean;
C: (Red,Green,Blue);
function Simple: Integer;
begin
Result := 42;
end;
function IfStatement: Integer;
begin
if B then
Result := 42
else
Result := 0;
end;
function CaseStatement: Integer;
begin
case C of
Red..Blue: Result := 42;
else Result := 0;
end;
end;
function TryStatement: Integer;
begin
Result := 0;
try
Result := 42;
except
Writeln('Ne devrait pas l'obtenir ici!');
end;
end;
begin
B := False;
end.
La solution consiste à s'assurer qu'il y a une affectation de la variable result dans chaque chemin de code possible.