Ich würde mir folgende Delphi-Syntax wünschen:
Delphi-Quellcode:
function MyFunc(
var Counter: Integer): Real;
var
O: TMyObject;
begin
O := TMyObject.Create;
O.MachWas(Counter);
if (O.Dies)
then
Exit(Random)
else
if (O.Das)
then
Exit(0);
Result := 1 / 0;
// Exception
FinallyExit:
// <-- Vor dem Aussprung IMMER ausführen, was folgt
FreeAndNil(O);
Inc(Counter);
end;
Es geht mir hier nur darum, dass vor dem Aussprung aus der Funktion IMMER noch irgend etwas erledigt wird.
FinallyExit könnte also ein automatisches GoTo-Label implemententieren, so dass auch Exit dort hin führt.
Ebenso könnte dieses Konstrukt als Try-Finally-Block fungieren.
Um das zu erzielende Ergebnis umzusetzen, müsste man bisher einen Try-Finally-Block definieren und die Exit-Anweisungen durch GoTo ersetzen, wobei hier zuvor noch Result zugewiesen werden müsste.
Ich habe mir eine solche Syntax schon öfters gewünscht.
Was haltet Ihr davon?