Thrown by a method invocation on a proxy instance if its invocation handler's
invoke
method throws a checked 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 getUndeclaredThrowable()
method is now known as the cause, and may be accessed via the Throwable.getCause()
method, as well as the aforementioned "legacy method."