[fpc-pascal] methods of an object to create others objects
Andrew Brunner
andrew.t.brunner at gmail.com
Wed Jul 7 15:44:40 CEST 2010
On Wed, Jul 7, 2010 at 8:37 AM, Graeme Geldenhuys
<graemeg.lists at gmail.com> wrote:
>> procedure TObj1.Free;
>> begin
>> Try
>> Disk1.Unmount;
>> Except
>> On E:Exception do begin
>> // Some case stuff here
>> end;
>> end;
>> Inherited Destroy;
>> end;
>>
>
> With the exception of a possible memory leak in case Disk1.Unmount was
> supposed to free up some resources. And if your app is something that
> runs 24/7, that is a *huge* problem! Eventually you will run out of
> memory and the whole thing will come crumbling down (and maybe even
> cause more damage).
>
Grame, no more caveats. If Unmount had memory that needed to be
released then the same methodology stands. Disk1.Unmount was placed
there to prove a point. That w/o handling Obj2.Free would never be
called in context (the outstanding proposed example).
As far as *HUGE* problem. Having to restart my server would be huge..
Especially in high scale, high available production environments.
Having a handle in place that says CATCH STUFF HERE like Save to SQL
server (if your needing to write to disk). The example I introduced
is a good one. Ignoring the exception will indeed cause a fatal
error. Handling the exception is the best practice here.
More information about the fpc-pascal
mailing list