A quick hint on handling
This sucker is thrown whenever you invoke a method via reflection (typically via
Method.invoke), and that method throws any sort of exception. So it doesn’t indicate a problem with the reflection mechanism, it is simply how the reflection mechanism notifies you of exceptions thrown by the method you called.
Whenever you catch this exception (and you will have to catch it at some level), the first thing you should do is call
getCause(). This returns the exception thrown from the method that was invoked via reflection, and that’s what you care about.