Was wäre aber, wenn man zwei Objekte hat und die Erzeugung des ersten (warum auch immer) fehl schlägt?
Delphi-Quellcode:
var
list1: TStringList;
list2: TStringList;
begin
list1 := TStringList.Create;
// vorige Zeile oder hier schlägt etwas fehl...
list2 := TStringList.Create;
try
...
finally
list2.Free;
end;
Hier müsste man wohl jede Menge try-Blöcke verschachteln?
Auch wenn ich mich unbeliebt mache, ich setze solche Schutzblöcke eigentlich selten ein. Meist nur, wenn ein E/A-Fehler passieren kann und dieser intern ausgeglichen werden soll.
Ansonsten achte ich lieber darauf, alle negativen Voraussetzungen Divisor = 0, Objekt = nil etc. vorab abzuprüfen.
Ich gehe schon mal in Deckung ...