Hi Friends,
I could not understand some parts(i.e Bold Text) of the
A Programmer's Guide to Java SCJP Certification(By Khalid A. Mughal Rolf W. Rasmussen) of
Object Finalization it says,
A finalizer can, like any other method, catch and throw exceptions (see Section
6.7, p. 245). However, any exception thrown but not caught by a finalizer that is
called by the garbage collector is ignored, and the finalization of this object is terminated.
The finalizer is only called once on an object, regardless of whether any
exception is thrown during its execution. In case of finalization failure, the object
still remains eligible for disposal at the discretion of the garbage collector (unless
it has been resurrected, as explained in the next subsection). Since there is no
guarantee that the garbage collector will ever run, there is also no guarantee that
the finalizer will ever be called.
What is the reason?