posted 14 years ago
You only need to deal with it in the first method that overrides clone():
You see, class A needs to catch it because Object.clone() specifies that it can throw a CloneNotSupportedException. Because A implements Cloneable, this exception will in fact never be thrown and can therefore be caught and ignored (although throwing an Error is better to indicate that something is still wrong if it occurs).
Class B no longer has to deal with it because A.clone() no longer throws it.