1 /*
2  * Written by Doug Lea with assistance from members of JCP JSR-166
3  * Expert Group and released to the public domain, as explained at
4  * http://creativecommons.org/publicdomain/zero/1.0/
5  */
6 
7 package java.util.concurrent;
8 
9 /**
10  * Exception thrown when attempting to retrieve the result of a task
11  * that aborted by throwing an exception. This exception can be
12  * inspected using the {@link #getCause()} method.
13  *
14  * @see Future
15  * @since 1.5
16  * @author Doug Lea
17  */
18 public class ExecutionException extends Exception {
19     private static final long serialVersionUID = 7830266012832686185L;
20 
21     /**
22      * Constructs an {@code ExecutionException} with no detail message.
23      * The cause is not initialized, and may subsequently be
24      * initialized by a call to {@link #initCause(Throwable) initCause}.
25      */
ExecutionException()26     protected ExecutionException() { }
27 
28     /**
29      * Constructs an {@code ExecutionException} with the specified detail
30      * message. The cause is not initialized, and may subsequently be
31      * initialized by a call to {@link #initCause(Throwable) initCause}.
32      *
33      * @param message the detail message
34      */
ExecutionException(String message)35     protected ExecutionException(String message) {
36         super(message);
37     }
38 
39     /**
40      * Constructs an {@code ExecutionException} with the specified detail
41      * message and cause.
42      *
43      * @param  message the detail message
44      * @param  cause the cause (which is saved for later retrieval by the
45      *         {@link #getCause()} method)
46      */
ExecutionException(String message, Throwable cause)47     public ExecutionException(String message, Throwable cause) {
48         super(message, cause);
49     }
50 
51     /**
52      * Constructs an {@code ExecutionException} with the specified cause.
53      * The detail message is set to {@code (cause == null ? null :
54      * cause.toString())} (which typically contains the class and
55      * detail message of {@code cause}).
56      *
57      * @param  cause the cause (which is saved for later retrieval by the
58      *         {@link #getCause()} method)
59      */
ExecutionException(Throwable cause)60     public ExecutionException(Throwable cause) {
61         super(cause);
62     }
63 }
64