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)