Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

Zwei Objekte in einem oder zwei Try Finaly Blöcke?

  Alt 15. Apr 2015, 13:45
Ich hab mich schon immer gefragt wie andere hier das mit dem Try Finally Block machen. Guckt man sich fremden Code an, bekommt jedes Objekt oft seinen eigenen Block. Das habe ich mir irgendwann so abgeguckt und mache es auch:
Delphi-Quellcode:
  Bmp := TBitmap.Create;
  try
    { Hier gibt es keinen Code }
    sl := TStringList.Create;
    try
      { Es gibt nur hier Code }
      //Hier gibt es einen Fehler
    finally
      sl.Free;
    end;
    { Hier gibt es keinen Code }
  finally
    Bmp.Free;
  end;
Allerdings denke ich mir manchmal, dass es Quatsch ist. Denn wenn es im oberen Beispiel mittendrin ein Error gibt, unterscheidet das System nicht zwischen Bitmap und StringList Error. Zuerst geht es zum sl-Finally, dann zum Bmp-Finally. Warum also nicht gleich so?
Delphi-Quellcode:
var
  Bmp: TBitmap;
  sl: TStringList;
begin
  Bmp := TBitmap.Create;
  sl := TStringList.Create;
  try
    { Es gibt nur hier Code }
    //Hier gibt es einen Fehler
  finally
    sl.Free;
    Bmp.Free;
  end;
end;
Wie gesagt, ich sehe die obere Variante sehr oft, nur sehe ich keinen Sinn drin.
  Mit Zitat antworten Zitat