Cool my new thing learn't for today! I didn't acutally know you could safely call free on a nil'ed class/pointer. I've been assuming since D1 that you couldn't. That has just changed my outlook a bit.
Thanks. Nahum. > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Paul Needham > Sent: Thursday, 4 March 2004 16:17 p.m. > To: 'NZ Borland Developers Group - Delphi List' > Subject: RE: [DUG] try..finally : Which way is best? > > > Not so. Check the help on free. > It is perfectly safe as long as issues and terrorists were set to nil > first. I think the compiler shows warnings if you don't > anyway. I could > have also explicitly checked to see if they were assigned in > the finally > but don't generally bother as this is what free does anyway. I am > willing to concede that calling destroy would be bad though 8). > > Paul > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > On Behalf Of Nahum.Wild > Sent: Thursday, 4 March 2004 4:08 p.m. > To: 'NZ Borland Developers Group - Delphi List' > Subject: RE: [DUG] try..finally : Which way is best? > > If issues fails then the finally will try to free terrorists, > which will > probably cause another exception. :o) > > Nahum. > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] Behalf Of Paul Needham > > Sent: Thursday, 4 March 2004 15:59 p.m. > > To: 'NZ Borland Developers Group - Delphi List' > > Subject: RE: [DUG] try..finally : Which way is best? > > > > > > How about..... > > > > issues := nil; > > terrorists := nil; > > changes := TStringList.create; > > try > > issues := TIssuesList.create; > > terrorists := THardToFind.create; > > > > ... > > > > finally > > terrorists.free; > > issues.free; > > changes.free; > > end; > > > > Paul > > DBSolutions > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] > > On Behalf Of Nahum.Wild > > Sent: Thursday, 4 March 2004 3:37 p.m. > > To: 'NZ Borland Developers Group - Delphi List' > > 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 > > > > _______________________________________________ > 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 > _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi
