[Lazarus] exception handling in constructor
Flávio Etrusco
flavio.etrusco at gmail.com
Sat Mar 2 06:45:56 CET 2013
On Fri, Mar 1, 2013 at 11:49 PM, Xiangrong Fang <xrfang at gmail.com> wrote:
> Hi there,
>
> If my class constructor looks like this:
>
> constructor TMyClass.Create(fn: string);
> begin
> sl := TStringList.Create;
> try
> fs := TFileStream.Create(fn, fmOpenRead);
> except
> self.Destroy;
> end;
> end;
>
> I create the objec like: MyInstance :=
> TMyClass.Create('AnNonExistentFile'); An exception occured, I can ensure
> that:
>
> 1. there is no memory leak.
I assume FPC behaves like Delphi, so there's no leak.
Actually, you don't even need to explicitly call Destroy; when an
exception occurs in a constructor the destructor is called
automatically.
> 2. the MyInstance variable is assigned nil?
No, it's not initialized.
> Thanks
Regards,
Flávio
More information about the Lazarus
mailing list