Delphi-Quellcode:
procedure xyz;
begin
A := TA.Create;
B := TB.Create;
...
FinallyExit:
A.Free;
B.Free;
end;
Es käme mir dabei eben nicht darauf an, wenn es "knallt". Gegeben sei eine tadellos funktionierende Funktion.
Deine 3 Punkte bearbeiten jede Menge Fallunterscheidungen, komplexe Verschachtelungen, Funktionsaufrufe usw.
An unterschiedlichen Stellen kann Exit aufgerufen werden und final noch etwas erledigt werden.
Das Ganze hat NICHTS mit Versuchen oder Fehlern zu tun. Es gibt diverse Abläufe und diverse Aussprünge.
Wie Eingangs schon diskutiert, kann man mit jeder Menge if..begin...end..else.. und temporären Flags arbeiten, ggf. auch mit Goto (wenn es nicht gleich wieder Aufschreie gibt).
Das sehr komfortable Exit(Value) lässt sich aber damit nicht nutzen.
Aber ok, wir kommen nicht zusammen. Dann lassen wir es einfach. Es war aber eine Weltidee.