View Javadoc
1   /*
2    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3    *
4    * This code is free software; you can redistribute it and/or modify it
5    * under the terms of the GNU General Public License version 2 only, as
6    * published by the Free Software Foundation.  Oracle designates this
7    * particular file as subject to the "Classpath" exception as provided
8    * by Oracle in the LICENSE file that accompanied this code.
9    *
10   * This code is distributed in the hope that it will be useful, but WITHOUT
11   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13   * version 2 for more details (a copy is included in the LICENSE file that
14   * accompanied this code).
15   *
16   * You should have received a copy of the GNU General Public License version
17   * 2 along with this work; if not, write to the Free Software Foundation,
18   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19   *
20   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21   * or visit www.oracle.com if you need additional information or have any
22   * questions.
23   */
24  
25  /*
26   * This file is available under and governed by the GNU General Public
27   * License version 2 only, as published by the Free Software Foundation.
28   * However, the following notice accompanied the original version of this
29   * file:
30   *
31   * Written by Doug Lea with assistance from members of JCP JSR-166
32   * Expert Group and released to the public domain, as explained at
33   * http://creativecommons.org/publicdomain/zero/1.0/
34   */
35  
36  package java.util.concurrent;
37  
38  /**
39   * Exception thrown when attempting to retrieve the result of a task
40   * that aborted by throwing an exception. This exception can be
41   * inspected using the {@link #getCause()} method.
42   *
43   * @see Future
44   * @since 1.5
45   * @author Doug Lea
46   */
47  public class ExecutionException extends Exception {
48      private static final long serialVersionUID = 7830266012832686185L;
49  
50      /**
51       * Constructs an {@code ExecutionException} with no detail message.
52       * The cause is not initialized, and may subsequently be
53       * initialized by a call to {@link #initCause(Throwable) initCause}.
54       */
55      protected ExecutionException() { }
56  
57      /**
58       * Constructs an {@code ExecutionException} with the specified detail
59       * message. The cause is not initialized, and may subsequently be
60       * initialized by a call to {@link #initCause(Throwable) initCause}.
61       *
62       * @param message the detail message
63       */
64      protected ExecutionException(String message) {
65          super(message);
66      }
67  
68      /**
69       * Constructs an {@code ExecutionException} with the specified detail
70       * message and cause.
71       *
72       * @param  message the detail message
73       * @param  cause the cause (which is saved for later retrieval by the
74       *         {@link #getCause()} method)
75       */
76      public ExecutionException(String message, Throwable cause) {
77          super(message, cause);
78      }
79  
80      /**
81       * Constructs an {@code ExecutionException} with the specified cause.
82       * The detail message is set to {@code (cause == null ? null :
83       * cause.toString())} (which typically contains the class and
84       * detail message of {@code cause}).
85       *
86       * @param  cause the cause (which is saved for later retrieval by the
87       *         {@link #getCause()} method)
88       */
89      public ExecutionException(Throwable cause) {
90          super(cause);
91      }
92  }