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
