I'd use 2 ways

1 multiply nested try finally (this is the most structured method but pretty
long winded)

or

StringList1 := nil;
StringList2 := nil;
StringList3 := nil;
try
  StringList1 := TStringList.Create;
  StringList2 := TStringList.Create;
  StringList3 := TStringList.Create;
finally
  FreeAndNil(StringList1);
  FreeAndNil(StringList2);
  FreeAndNil(StringList3);
end

Neven

----- Original Message ----- 
From: "Nahum.Wild" <[EMAIL PROTECTED]>
To: "'NZ Borland Developers Group - Delphi List'" <[EMAIL PROTECTED]>
Sent: Thursday, March 04, 2004 3:36 PM
Subject: [DUG] try..finally : Which way is best?


> Ok so this is something that has bugged me for ages, partly because I
don't
> know and partly because I can't be bother trying to figure it out.
>
> is the following code ok? or should I give each it's own try..finally?
>
> --
>
> changes := TStringList.create;
> issues := TIssuesList.create;
> terrorists := THardToFind.create;
> try
>
> // stuff is done, planes flown.  That type of things.
>
> finally
>   terrorists.free;
>   issues.free;
>   changes.free;
> end;
>
> --
>
> I mean what could go wrong in the TStringList.create constructor for
> example?  It's not like there should be anything much in there that could
go
> wrong anyway?  Because if it does except the destructor will be
immediately
> called - learnt that one the hard way many years ago.  As a general rule
of
> thumb I don't put anything significant in a constructor for my own
classes -
> that's what init or setup methods are for.
>
> For the record I've never done it this way, I've always given each their
own
> try..finally.
>
> Thoughts anyone?
>
>
>
> Nahum Wild
> Software Innovator & Process Consultant
> IFE
> PayGlobal
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
>
>

_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to