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 an error or other exception is encountered 40 * in the course of completing a result or task. 41 * 42 * @since 1.8 43 * @author Doug Lea 44 */ 45 public class CompletionException extends RuntimeException { 46 private static final long serialVersionUID = 7830266012832686185L; 47 48 /** 49 * Constructs a {@code CompletionException} with no detail message. 50 * The cause is not initialized, and may subsequently be 51 * initialized by a call to {@link #initCause(Throwable) initCause}. 52 */ CompletionException()53 protected CompletionException() { } 54 55 /** 56 * Constructs a {@code CompletionException} with the specified detail 57 * message. The cause is not initialized, and may subsequently be 58 * initialized by a call to {@link #initCause(Throwable) initCause}. 59 * 60 * @param message the detail message 61 */ CompletionException(String message)62 protected CompletionException(String message) { 63 super(message); 64 } 65 66 /** 67 * Constructs a {@code CompletionException} with the specified detail 68 * message and cause. 69 * 70 * @param message the detail message 71 * @param cause the cause (which is saved for later retrieval by the 72 * {@link #getCause()} method) 73 */ CompletionException(String message, Throwable cause)74 public CompletionException(String message, Throwable cause) { 75 super(message, cause); 76 } 77 78 /** 79 * Constructs a {@code CompletionException} with the specified cause. 80 * The detail message is set to {@code (cause == null ? null : 81 * cause.toString())} (which typically contains the class and 82 * detail message of {@code cause}). 83 * 84 * @param cause the cause (which is saved for later retrieval by the 85 * {@link #getCause()} method) 86 */ CompletionException(Throwable cause)87 public CompletionException(Throwable cause) { 88 super(cause); 89 } 90 } 91