CloneNotSupportedException should extends RuntimeException not Exception (original) (raw)
Remi Forax forax at univ-mlv.fr
Sun Oct 14 16:19:16 UTC 2012
- Previous message: about JavaOne2012 Finding and Solving Java Deadlocks
- Next message: CloneNotSupportedException should extends RuntimeException not Exception
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi everybody, CloneNotSupportedException is thrown when a developer calls Object.clone() and forget to mark the current object as Cloneable. Because it's clearly a developer error, CloneNotSupportedException should be a subtype of RuntimeException and not of Exception.
I believe this change is backward compatible because RuntimeException is a subclass of Exception, so I propose to first change CloneNotSupportedException to extends RuntimeException.
diff -r ff641c5b329b src/share/classes/java/lang/CloneNotSupportedException.java --- a/src/share/classes/java/lang/CloneNotSupportedException.java Sat Oct 13 10:15:57 2012 +0100 +++ b/src/share/classes/java/lang/CloneNotSupportedException.java Sun Oct 14 18:16:35 2012 +0200 @@ -42,7 +42,7 @@ */
public -class CloneNotSupportedException extends Exception { +class CloneNotSupportedException extends RuntimeException { private static final long serialVersionUID = 5195511250079656443L;
/**
And then to clean up the whole JDK (in several patches) to remove all the unnecessary try/catch like the one in by example ArrayList.clone()
public Object clone() {
try {
ArrayList<?> v = (ArrayList<?>) super.clone();
v.elementData = Arrays.copyOf(elementData, size);
v.modCount = 0;
return v;
} catch (CloneNotSupportedException e) {
// this shouldn't happen, since we are Cloneable
throw new InternalError(e);
}
}
will become
public Object clone() {
ArrayList<?> v = (ArrayList<?>) super.clone();
v.elementData = Arrays.copyOf(elementData, size);
v.modCount = 0;
return v;
}
cheers, Rémi
- Previous message: about JavaOne2012 Finding and Solving Java Deadlocks
- Next message: CloneNotSupportedException should extends RuntimeException not Exception
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]