Reflective Operation Exceptions
By darcy on Aug 10, 2009
Applying previously published advice on designing exception types, as of JDK 7 build 68, exceptions thrown by core reflection operations have been
to have a common superclass,
Inserting a new level into the superclass hierarchy in this fashion is a binary compatible change (JLSv3 § 13.4.4 Superclasses and Superinterfaces) since the exceptions remain subclasses of original superclass
java.lang.Exception. The change in direct supercass should be transparent other than to reflective operations that specifically query the superclass.
All the exception classes in question already had explicit
serialVersionUID fields so changing their superclass is compatible from a serialization perspective too. If explicit
serialVersionUID fields were not already present, they would need to be added since the direct superclass figures into the default serial version computation.