W1035 Rückgabewert der Funktion '%s' könnte undefiniert sein (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
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.