/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.jini.config;
/**
* Thrown if a problem occurs when obtaining configuration information. If the
* problem results from an exception being thrown while processing the
* configuration information, that original exception can be accessed by
* calling {@link #getCause getCause}. Note that any instance of
* <code>Error</code> thrown while processing the configuration information is
* propagated to the caller; it is not wrapped in a
* <code>ConfigurationException</code>.
*
* @author Sun Microsystems, Inc.
* @see Configuration
* @see ConfigurationProvider
* @since 2.0
*/
public class ConfigurationException extends Exception {
private static final long serialVersionUID = -6556992318636509514L;
/**
* Creates an instance with the specified detail message.
*
* @param s the detail message
*/
public ConfigurationException(String s) {
super(s);
}
/**
* Creates an instance with the specified detail message and causing
* exception, which should not be an instance of <code>Error</code>.
*
* @param s the detail message
* @param t the causing exception
*/
public ConfigurationException(String s, Throwable t) {
super(s, t);
}
/**
* Returns a short description of this exception. The result includes the
* name of the actual class of this object; the result of calling the
* {@link #getMessage getMessage} method for this object, if the result is
* not <code>null</code>; and the result of calling <code>toString</code>
* on the causing exception, if that exception is not <code>null</code>.
*/
public String toString() {
String s = super.toString();
Throwable cause = getCause();
return (cause == null) ? s : (s + "; caused by:\n\t" + cause);
}
}