java.lang.reflect.UndeclaredThrowableException Maven / Gradle / Ivy
The newest version!
/*
This is not an official specification document, and usage is restricted.
NOTICE
(c) 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
Neither this file nor any files generated from it describe a complete
specification, and they may only be used as described below. For
example, no permission is given for you to incorporate this file, in
whole or in part, in an implementation of a Java specification.
Sun Microsystems Inc. owns the copyright in this file and it is provided
to you for informative, as opposed to normative, use. The file and any
files generated from it may be used to generate other informative
documentation, such as a unified set of documents of API signatures for
a platform that includes technologies expressed as Java APIs. The file
may also be used to produce "compilation stubs," which allow
applications to be compiled and validated for such platforms.
Any work generated from this file, such as unified javadocs or compiled
stub files, must be accompanied by this notice in its entirety.
This work corresponds to the API signatures of JSR 219: Foundation
Profile 1.1. In the event of a discrepency between this work and the
JSR 219 specification, which is available at
http://www.jcp.org/en/jsr/detail?id=219, the latter takes precedence.
*/
package java.lang.reflect;
/**
* Thrown by a method invocation on a proxy instance if its invocation
* handler's {@link InvocationHandler#invoke 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 {@link #getUndeclaredThrowable()} method is now known as the
* cause, and may be accessed via the {@link
* Throwable#getCause()} method, as well as the aforementioned "legacy
* method."
*
* @author Peter Jones
* @version 1.6, 00/02/02
* @see InvocationHandler
* @since JDK1.3
*/
public class UndeclaredThrowableException extends RuntimeException
{
static final long serialVersionUID = 330127114055056639L;
/**
* the undeclared checked exception that was thrown
* @serial
*/
private Throwable undeclaredThrowable;
/**
* Constructs an UndeclaredThrowableException
with the
* specified Throwable
.
*
* @param undeclaredThrowable the undeclared checked exception
* that was thrown
*/
public UndeclaredThrowableException(Throwable undeclaredThrowable) { }
/**
* Constructs an UndeclaredThrowableException
with the
* specified Throwable
and a detail message.
*
* @param undeclaredThrowable the undeclared checked exception
* that was thrown
* @param s the detail message
*/
public UndeclaredThrowableException(Throwable undeclaredThrowable, String s)
{ }
/**
* Returns the Throwable
instance wrapped in this
* UndeclaredThrowableException
, which may be null.
*
*
This method predates the general-purpose exception chaining facility.
* The {@link Throwable#getCause()} method is now the preferred means of
* obtaining this information.
*
* @return the undeclared checked exception that was thrown
*/
public Throwable getUndeclaredThrowable() {
return null;
}
/**
* Returns the the cause of this exception (the Throwable
* instance wrapped in this UndeclaredThrowableException
,
* which may be null).
*
* @return the cause of this exception.
* @since 1.4
*/
public Throwable getCause() {
return null;
}
}