Thrown by a method invocation on a proxy instance if its invocation handler's {@link InvocationHandler#invoke invoke} method throws achecked exception (a
Throwable
that is not assignable to
RuntimeException
or
Error
) that is not assignable to any of the exception types declared in the
throws
clause of the method that was invoked on the proxy instance and dispatched to the invocation handler.
An UndeclaredThrowableException
instance contains the undeclared checked exception that was thrown by the invocation handler, and it can be retrieved with the getUndeclaredThrowable()
method. UndeclaredThrowableException
extends RuntimeException
, so it is an unchecked exception that wraps a checked exception.
As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The "undeclared checked exception that was thrown by the invocation handler" that may be provided at construction time and accessed via the {@link #getUndeclaredThrowable()} method is now known as thecause, and may be accessed via the {@link Throwable#getCause()} method, as well as the aforementioned "legacymethod."
@author Peter Jones
@version 1.15, 06/04/07
@see InvocationHandler
@since 1.3