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 * http://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
018 package org.apache.commons.dbcp;
019
020
021 /**
022 * <p>Subclass of <code>RuntimeException</code> that can be used to wrap
023 * a <code>SQLException</code> using the "root cause" pattern of JDK 1.4
024 * exceptions, but without requiring a 1.4 runtime environment.</p>
025 *
026 * @author Jonathan Fuerth
027 * @author Dan Fraser
028 * @version $Revision: 883425 $ $Date: 2009-11-23 12:19:43 -0500 (Mon, 23 Nov 2009) $
029 *
030 * @deprecated This will be removed in a future version of DBCP.
031 **/
032 public class DbcpException extends RuntimeException {
033
034 private static final long serialVersionUID = 2477800549022838103L;
035
036 // ----------------------------------------------------------- Constructors
037
038
039 /**
040 * Construct a new runtime exception with <code>null</code> as its
041 * detail message.
042 */
043 public DbcpException() {
044
045 super();
046
047 }
048
049
050 /**
051 * Construct a new runtime exception with the specified detail message.
052 *
053 * @param message The detail message for this exception
054 */
055 public DbcpException(String message) {
056
057 this(message, null);
058
059 }
060
061
062 /**
063 * Construct a new runtime exception with the specified detail message
064 * and cause.
065 *
066 * @param message The detail message for this exception
067 * @param cause The root cause for this exception
068 */
069 public DbcpException(String message, Throwable cause) {
070
071 super(message);
072 this.cause = cause;
073
074 }
075
076
077 /**
078 * Construct a new runtime exception with the specified cause and a
079 * detail message of <code>(cause == null ? null : cause.toString())</code>.
080 *
081 * @param cause The root cause for this exception
082 */
083 public DbcpException(Throwable cause) {
084
085 super((cause == null) ? (String) null : cause.toString());
086 this.cause = cause;
087
088 }
089
090
091 // ----------------------------------------------------- Instance Variables
092
093
094 /**
095 * The root cause of this exception (typically an
096 * <code>SQLException</code> but this is not required).
097 */
098 protected Throwable cause = null;
099
100
101 // --------------------------------------------------------- Public Methods
102
103
104 /**
105 * Return the root cause of this exception (if any).
106 */
107 public Throwable getCause() {
108
109 return (this.cause);
110
111 }
112
113
114 }