java - At subclass Compilation Error: Unreachable catch block for CloneNotSupportedException -
in superclass, when override clone() method there no problem.
public class superclass implements serializable, cloneable { public object clone() { try { return super.clone(); } catch (clonenotsupportedexception e) { return null; } } } when override clone() method in subclass doing same (copy , paste clone() method super class) it's showing compilation error
public class subclass extends superclass implements serializable, cloneable { public object clone() { try { return super.clone(); } catch (clonenotsupportedexception e) { return null; } } } compilation error in subclasss @ line containing catch:
unreachable catch block clonenotsupportedexception. exception never thrown try statement body
again, if remove method clone() superclass subclass wont show error.
where gap of understanding?
if superclass's clone catches clonenotsupportedexception , doesn't throw it, subclass doesn't have catch it, since can never thrown try block of subclass's clone().
when remove clone() superclass, subclass calls object's clone() has throws clonenotsupportedexception clause. therefore have catch exception (or add throws clonenotsupportedexception method).
Comments
Post a Comment