001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *     https://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018package org.apache.commons.configuration2.ex;
019
020/**
021 * Any exception that occurs while initializing a Configuration object.
022 */
023public class ConfigurationException extends Exception {
024
025    /**
026     * The serial version ID.
027     */
028    private static final long serialVersionUID = -1316746661346991484L;
029
030    /**
031     * Constructs a new {@code ConfigurationException} without specified detail message.
032     */
033    public ConfigurationException() {
034    }
035
036    /**
037     * Constructs a new {@code ConfigurationException} with specified detail message.
038     *
039     * @param message the error message
040     */
041    public ConfigurationException(final String message) {
042        super(message);
043    }
044
045    /**
046     * Constructs a new {@code ConfigurationException} with specified detail message.
047     *
048     * @param format the error message for for {@link String#format(String, Object...)}.
049     * @param params the error parameters for for {@link String#format(String, Object...)}.
050     * @since 2.14.0
051     */
052    public ConfigurationException(final String format, final Object... params) {
053        super(String.format(format, params));
054    }
055
056    /**
057     * Constructs a new {@code ConfigurationException} with specified detail message and nested {@code Throwable}.
058     *
059     * @param message the error message
060     * @param cause   the cause (which is saved for later retrieval by the {@link #getCause()} method). (A {@code null} value is permitted, and indicates that
061     *                the cause is nonexistent or unknown.)
062     */
063    public ConfigurationException(final String message, final Throwable cause) {
064        super(message, cause);
065    }
066
067    /**
068     * Constructs a new {@code ConfigurationException} with specified nested {@code Throwable}.
069     *
070     * @param cause the exception or error that caused this exception to be thrown
071     */
072    public ConfigurationException(final Throwable cause) {
073        super(cause);
074    }
075
076    /**
077     * Constructs a new {@code ConfigurationException} with specified detail message.
078     *
079     * @param format the error message for for {@link String#format(String, Object...)}.
080     * @param params the error parameters for for {@link String#format(String, Object...)}.
081     * @param cause  the cause (which is saved for later retrieval by the {@link #getCause()} method). (A {@code null} value is permitted, and indicates that
082     *               the cause is nonexistent or unknown.)
083     * @since 2.14.0
084     */
085    public ConfigurationException(final Throwable cause, final String format, final Object... params) {
086        super(String.format(format, params), cause);
087    }
088}