14fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy/*
24fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * Licensed to the Apache Software Foundation (ASF) under one or more
34fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * contributor license agreements.  See the NOTICE file distributed with
44fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * this work for additional information regarding copyright ownership.
54fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * The ASF licenses this file to You under the Apache License, Version 2.0
64fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * (the "License"); you may not use this file except in compliance with
74fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * the License.  You may obtain a copy of the License at
84fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *
94fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *      http://www.apache.org/licenses/LICENSE-2.0
104fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *
114fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * Unless required by applicable law or agreed to in writing, software
124fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * distributed under the License is distributed on an "AS IS" BASIS,
134fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * See the License for the specific language governing permissions and
154fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * limitations under the License.
164fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy */
174fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
184fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedypackage org.apache.commons.io;
194fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
204fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedyimport java.io.IOException;
214fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
224fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy/**
234fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * Subclasses IOException with the {@link Throwable} constructors missing before Java 6. If you are using Java 6,
244fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * consider this class deprecated and use {@link IOException}.
254fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *
264fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * @author <a href="http://commons.apache.org/io/">Apache Commons IO</a>
274fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * @version $Id$
284fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy * @since Commons IO 1.4
294fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy */
304fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedypublic class IOExceptionWithCause extends IOException {
314fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
324fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    /**
334fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * Defines the serial version UID.
344fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     */
354fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    private static final long serialVersionUID = 1L;
364fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
374fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    /**
384fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * Constructs a new instance with the given message and cause.
394fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * <p>
404fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * As specified in {@link Throwable}, the message in the given <code>cause</code> is not used in this instance's
414fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * message.
424fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * </p>
434fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     *
444fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * @param message
454fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     *            the message (see {@link #getMessage()})
464fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * @param cause
474fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     *            the cause (see {@link #getCause()}). A <code>null</code> value is allowed.
484fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     */
494fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    public IOExceptionWithCause(String message, Throwable cause) {
504fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy        super(message);
514fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy        this.initCause(cause);
524fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    }
534fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
544fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    /**
554fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * Constructs a new instance with the given cause.
564fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * <p>
574fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * The message is set to <code>cause==null ? null : cause.toString()</code>, which by default contains the class
584fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * and message of <code>cause</code>. This constructor is useful for call sites that just wrap another throwable.
594fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * </p>
604fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     *
614fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     * @param cause
624fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     *            the cause (see {@link #getCause()}). A <code>null</code> value is allowed.
634fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy     */
644fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    public IOExceptionWithCause(Throwable cause) {
654fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy        super(cause == null ? null : cause.toString());
664fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy        this.initCause(cause);
674fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy    }
684fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy
694fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy}
70