Anzeigen: Delphi
C++
Anzeigeeinstellungen
W1035: Rückgabewert der Funktion '%s' könnte undefiniert sein (Delphi)
Aus RAD Studio XE2
Nach oben zu Fehler- und Warnungsmeldungen (Delphi) - Index
Diese Warnung wird angezeigt, wenn dem Rückgabewert einer Funktion nicht in jedem Codepfad ein Wert zugewiesen wurde.
Die Funktion könnte auch ausgeführt werden, ohne dass der Rückgabewert zugewiesen wird.
program Produce;
(*$WARNINGS ON*)
var
B : Boolean;
C: (Red,Green,Blue);
function Simple: Integer;
begin
end; (*<-- Hier die Warnmeldung*)
function IfStatement: Integer;
begin
if B then
Result := 42;
end; (*<-- Hier die Warnmeldung*)
function CaseStatement: Integer;
begin
case C of
Red..Blue: Result := 42;
end;
end; (*<-- Hier die Warnmeldung*)
function TryStatement: Integer;
begin
try
Result := 42;
except
Writeln('Should not get here!');
end;
end; (*<-- Hier die Warnmeldung*)
begin
B := False;
end.
Das Problem bei IfStatement und CaseStatement besteht darin, dass der Rückgabewert (Result) nicht in jedem Quelltextpfad zugewiesen wird. Der Compiler vermutet, dass in TryStatement eine Exception vor der Zuweisung von Result auftreten kann.
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('Should not get here!');
end;
end;
begin
B := False;
end.
Die Lösung besteht darin, sicherzustellen, dass der Rückgabewert in jedem möglichen Quelltextpfad zugewiesen wird.