[Vala] Constructor error in object creation and deterministic destruction



Hello,

I wanted to check that the destructor is always called, even when an exception is thrown during the 
construction of the object.

I've coded this up in Genie and when the object can't be created, because the resource (an empty file in this 
case) isn't available, an exception is thrown. I'm assuming Vala has already created the object reference 
count, so when it goes out of scope of the 'try' block the destructor is always called, even if the object 
has not been fully initialised by the constructor. The Vala tutorial states the Vala's "memory management is 
based on reference counting instead of tracing garbage collection, destructors are deterministic and can be 
used to implement the RAII pattern for resource management".

I know anything that calls the C exit() function, such as Process.exit(0), will break the program immediately 
and so stop the destructor being called. I wondered if there were any other circumstances when the destructor 
wouldn't be called so I can be sure I need to code the freeing of the resources only in the destructor.

Thanks,

Al


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]