Friday, March 13, 2015

InvocationTargetException

java.lang.reflect.InvocationTargetException

InvocationTargetException is described in the javadoc comments as:

InvocationTargetException is a checked exception that wraps an exception thrown by an invoked method or constructor.

As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The 'target exception' that is provided at construction time and accessed via the {link: #getTargetException()} method is now known as the cause, and may be accessed via the {link: Throwable#getCause()} method, as well as the aforementioned 'legacy method.'
see: Method see: Constructor

Where is this exception thrown?

Following, is a list of exception messages cross-referenced to the source code responsible for throwing them. Click on the method link to view the code and see how the exception is thrown.

How is this exception thrown?

The following sub-sections identify where this exception is thrown, and how (or why) the code is throwing the exception.

Any source code quoted in this section is subject to the Java Research License unless stated otherwise.

java.awt.EventQueue.invokeAndWait(Runnable)

/**
     * Causes <code>runnable</code> to have its <code>run</code>
     * method called in the dispatch thread of the <code>EventQueue</code>.
     * This will happen after all pending events are processed.
     * The call blocks until this has happened.  This method
     * will throw an Error if called from the event dispatcher thread.
     * @param runnable  the <code>Runnable</code> whose <code>run</code>
     *                  method should be executed
     *                  synchronously on the <code>EventQueue</code>
     * @exception       InterruptedException  if another thread has
     *                  interrupted this thread
     * @exception       InvocationTargetException  if an throwable is thrown
     *                  when running <code>runnable</code>
     * @see             #invokeLater
     * @since           1.2
     */
public static void invokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException {
    if (EventQueue.isDispatchThread()) {
        throw new Error('Cannot call invokeAndWait from the event dispatcher thread');
    }
    class AWTInvocationLock {
    }
    Object lock = new AWTInvocationLock();
    InvocationEvent event = new InvocationEvent(Toolkit.getDefaultToolkit(), runnable, lock, true);
    synchronized (lock) {
        Toolkit.getEventQueue().postEvent(event);
        lock.wait();
    }
    Throwable eventThrowable = event.getThrowable();
    if (eventThrowable != null) {
        throw new InvocationTargetException(eventThrowable);
    }
}

Source: "Java SE Downloads: Java SE 6 JDK Source Code", at: http://www.oracle.com/technetwork/java/javase/downloads/index.html

No comments:

Post a Comment