Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Warum könnte hier der Rückgabewert undefiniert sein?

  Alt 29. Okt 2014, 18:22
Zitat:
Und das raisen einer Execption die eine Funktion beendet reicht Delphi als "Rückgabewert"
Glaube ich nicht so wirklich, habe es aber jetzt auch nicht getestet.

IMHO prüft der Compiler lediglich, ob alle möglichen Codepfade dazu führen, dass am Ende der Funktion irgend jemand irgend wann mal etwas an "Result" zugewiesen hat. Fliegt man mit einer Exception raus, trifft das nicht zu.

Interessant wäre dann aber z.B. so ein Fall
Delphi-Quellcode:
function Foo: Integer;
begin
  Result := Bar();
end;
Was, wenn Bar() eine Exception auslöst, und ebenfalls in diesem Fall keine Zuweisung an sein Result gemacht hat? Schleift der Compiler das mit nach Foo() durch? (Mal angenommen Bar() ist nicht im Quelltext verfügbar und wird nicht mit Foo() zusammen übersetzt.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat