Ja das stimmt.
Ist das denn ein Grund keinen Exit-Mechanismus vorzusehen?
Es geht ja um das vorzeitige Verlassen eines Scopes.
Entspricht das etwa irgendwie nicht den guten Gepflogenheiten?
Es gibt ja ein anderes "AntiPattern", in Methoden - ein Guard ( Exit; ) um vorzeitig anzubrechen.
Delphi-Quellcode:
function MyFunc( AParam : Integer ) : Boolean;
begin
if AParam < 0 then
begin
Result := False;
Exit; //<== GUARD - sichere vor falschen Parametern ============
end;
// Hier kann ich munter mit dem Parameter arbeiten, ohne dass die Funktion abraucht
AParm := AParam * 100;
...
Result := True;
end;
Ich benutze das "AntiPattern" sehr gerne, weil es eben irrsinnig tiefe if then Verschachtelungen wunderbar einfach und lesbar auflösen kann.
Für Sprachpuristen kommt das glaube ich aber nicht in Frage.
Es scheint mir so das gleiche Argument zu sein.
Das geht vielleicht alles in die Richtung: "break, continue, Exit ist auch nur ein GOTO".
Könnte das der wahre Grund dahinter sein?