I believe the situation referred to can be represented as:
Object
+-- firstDerived
+--- secondDerived
Now - if the finalize method in firstDerived does NOT declare any thrown checked exception, then the finalize in secondDerived may not declare any checked exception.
What you appear to be thinking about is:
Object
+---- firstDerived
But that is not the situation in the original question - (my addition):
"The finalize() in Object can throw any throwable object Overridding method (firstDerived) can limit the range of throwable to unchecked Exceptions. Further Overridden (secondDerived) definitions of this method in subclass will not be able to throw checked Exception."
Bill
------------------
author of: