Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#22

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 13:07
@messie: Weil der Konstruktor fehlschlagen kann, und dann wäre da nichts zum freigeben. Weiterhin stimmt der Kontext nicht: Der Try..Finally-Block soll ja gerade die Verwendung des OPbjektes schützen und nicht die Instantiierung selbst.

Richtig wäre es so:
Delphi-Quellcode:
Try
  Obj := TMyObect.Create;
  Try
    Obj.Foobar
  Finally
    Obj.Free
Finally
  Showmessage('Ach Du scheisse, noch nich mal Create funzt.')
End;
@NegaH: Ich mag es aber in grün lieber:
Delphi-Quellcode:
Try
...
Except
  On E:EThisException Do Begin
    HandleThisException(E);
  End;
  On E:EThatException Do Begin
    HandleThatException (E);
  End;
  On E:Exception Do Begin
    HandleAnyOtherException (E);
  End;
End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat