Warum? Weil es in den meisten Lehrbüchern zu Delphi so vermittelt wird? Was kann passieren, wenn das Create fehlschlägt? -> Nichts.
Die Variable wäre nicht initialisiert und dann knallt es
womöglich höchstwahrscheinlich im Free des Finally.
Wenn man die Variable vor dem Try auf Nil setzt, bzw. sie automatisch gesetzt wurde, was bei einer loklen Variable aber nicht der Fall ist,
dann kann man das Create auch innerhalb des Try-Blocks machen.
Wenn man unbedingt auf das Begin-End verzichten will, welches nötig wäre, wenn .Create vor dem Try liegen würde,
dann wäre Folgendes eine (oftmals verfluchte) Möglichkeit. (wegen dem böse With)
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveDialog.Execute then
with TStringList.Create do
try
Add(Edit1.Text);
SaveToFile(SaveDialog.FileName);
finally
Free;
end;
end;