Hi Nahum,
No, it is not Ok.
The problem is if THardToFind constructor throw exception, changes and
issues variable will not be deallocated.
Here is two solutions.
1:
changes := TStringList.create;
try
issues := TIssuesList.create;
try
terrorists := THardToFind.create;
try
// stuff is done, planes flown. That type of things.
finally
terrorists.free;
end;
finally
issues.free;
end;
finally
changes.free;
end;
2:
changes := nil;
issues := nil;
terrorists := nil;
try
changes := TStringList.create;
issues := TIssuesList.create;
terrorists := THardToFind.create;
// stuff is done, planes flown. That type of things.
finally
changes.free;
issues.free;
terrorists.free;
end;
Regards
Leigh
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Nahum.Wild
Sent: Thursday, March 04, 2004 3:37 PM
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