wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes finalize() Exception Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "finalize() Exception" Watch "finalize() Exception" New topic
Author

finalize() Exception

Parag Mokal
Greenhorn

Joined: Jan 14, 2001
Posts: 19
In the follwing class the "protected void finalize()" method gets compiled
<code>
public class FinalException {
FinalException() {
System.out.println("Creating FinalException ");
}
protected void finalize() {
System.out.println("finalizing ");
//super.finalize();
}
public static void main(String[] args)
{
new FinalException();
System.gc();
}
}
</code>
But when I call the "superclass finalize()"(which is commented in the above code method I get the error that the Throwable exception must be caught. Why the Exception has to be caught only when the superclass finalize() is called.
Elisabeth Van
Ranch Hand

Joined: Feb 09, 2001
Posts: 42
If you check the API, the finalize method in the Object class (which is what you're calling when you say super.finalize() ) throws a Throwable exception.
You don't get an error when you call the finalize method in your class, because it doesn't throw any exceptions. If you declared your method as follows:
protected void finalize() throws Throwable {
then you would have an exception you'd need to catch, as in the finalize() method from Object.
Hope this helps.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: finalize() Exception
 
Similar Threads
finalize() Method
Interesting question in GC
Why Donot finalize method run?
Exception and Overriding
finalize access specifiers protected/private/public