001 /*
002 * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation. Sun designates this
008 * particular file as subject to the "Classpath" exception as provided
009 * by Sun in the LICENSE file that accompanied this code.
010 *
011 * This code is distributed in the hope that it will be useful, but WITHOUT
012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014 * version 2 for more details (a copy is included in the LICENSE file that
015 * accompanied this code).
016 *
017 * You should have received a copy of the GNU General Public License version
018 * 2 along with this work; if not, write to the Free Software Foundation,
019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020 *
021 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022 * CA 95054 USA or visit www.sun.com if you need additional information or
023 * have any questions.
024 */
025
026 package java.sql;
027
028 /**
029 * The subclass of {@link SQLException} thrown in situations where a
030 * previously failed operation might be able to succeed if the application performs
031 * some recovery steps and retries the entire transaction or in the case of a
032 * distributed transaction, the transaction branch. At a minimum,
033 * the recovery operation must include closing the current connection and getting
034 * a new connection.
035 *<p>
036 *
037 * @since 1.6
038 */
039 public class SQLRecoverableException extends java.sql.SQLException {
040
041 /**
042 * Constructs a <code>SQLRecoverableException</code> object.
043 * The <code>reason</code>, <code>SQLState</code> are initialized
044 * to <code>null</code> and the vendor code is initialized to 0.
045 *
046 * The <code>cause</code> is not initialized, and may subsequently be
047 * initialized by a call to the
048 * {@link Throwable#initCause(java.lang.Throwable)} method.
049 * <p>
050 * @since 1.6
051 */
052 public SQLRecoverableException() {
053 super ();
054 }
055
056 /**
057 * Constructs a <code>SQLRecoverableException</code> object
058 * with a given <code>reason</code>. The <code>SQLState</code>
059 * is initialized to <code>null</code> and the vender code is initialized
060 * to 0.
061 *
062 * The <code>cause</code> is not initialized, and may subsequently be
063 * initialized by a call to the
064 * {@link Throwable#initCause(java.lang.Throwable)} method.
065 * <p>
066 * @param reason a description of the exception
067 * @since 1.6
068 */
069 public SQLRecoverableException(String reason) {
070 super (reason);
071 }
072
073 /**
074 * Constructs a <code>SQLRecoverableException</code> object
075 * with a given <code>reason</code> and <code>SQLState</code>.
076 *
077 * The <code>cause</code> is not initialized, and may subsequently be
078 * initialized by a call to the
079 * {@link Throwable#initCause(java.lang.Throwable)} method. The vendor code
080 * is initialized to 0.
081 * <p>
082 * @param reason a description of the exception
083 * @param SQLState an XOPEN or SQL:2003 code identifying the exception
084 * @since 1.6
085 */
086 public SQLRecoverableException(String reason, String SQLState) {
087 super (reason, SQLState);
088 }
089
090 /**
091 * Constructs a <code>SQLRecoverableException</code> object
092 * with a given <code>reason</code>, <code>SQLState</code> and
093 * <code>vendorCode</code>.
094 *
095 * The <code>cause</code> is not initialized, and may subsequently be
096 * initialized by a call to the
097 * {@link Throwable#initCause(java.lang.Throwable)} method.
098 * <p>
099 * @param reason a description of the exception
100 * @param SQLState an XOPEN or SQL:2003 code identifying the exception
101 * @param vendorCode a database vendor specific exception code
102 * @since 1.6
103 */
104 public SQLRecoverableException(String reason, String SQLState,
105 int vendorCode) {
106 super (reason, SQLState, vendorCode);
107 }
108
109 /**
110 * Constructs a <code>SQLRecoverableException</code> object
111 * with a given <code>cause</code>.
112 * The <code>SQLState</code> is initialized
113 * to <code>null</code> and the vendor code is initialized to 0.
114 * The <code>reason</code> is initialized to <code>null</code> if
115 * <code>cause==null</code> or to <code>cause.toString()</code> if
116 * <code>cause!=null</code>.
117 * <p>
118 * @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
119 * the cause is non-existent or unknown.
120 * @since 1.6
121 */
122 public SQLRecoverableException(Throwable cause) {
123 super (cause);
124 }
125
126 /**
127 * Constructs a <code>SQLRecoverableException</code> object
128 * with a given
129 * <code>reason</code> and <code>cause</code>.
130 * The <code>SQLState</code> is initialized to <code>null</code>
131 * and the vendor code is initialized to 0.
132 * <p>
133 * @param reason a description of the exception.
134 * @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
135 * the cause is non-existent or unknown.
136 * @since 1.6
137 */
138 public SQLRecoverableException(String reason, Throwable cause) {
139 super (reason, cause);
140 }
141
142 /**
143 * Constructs a <code>SQLRecoverableException</code> object
144 * with a given
145 * <code>reason</code>, <code>SQLState</code> and <code>cause</code>.
146 * The vendor code is initialized to 0.
147 * <p>
148 * @param reason a description of the exception.
149 * @param SQLState an XOPEN or SQL:2003 code identifying the exception
150 * @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
151 * the cause is non-existent or unknown.
152 * @since 1.6
153 */
154 public SQLRecoverableException(String reason, String SQLState,
155 Throwable cause) {
156 super (reason, SQLState, cause);
157 }
158
159 /**
160 * Constructs a <code>SQLRecoverableException</code> object
161 * with a given
162 * <code>reason</code>, <code>SQLState</code>, <code>vendorCode</code>
163 * and <code>cause</code>.
164 * <p>
165 * @param reason a description of the exception
166 * @param SQLState an XOPEN or SQL:2003 code identifying the exception
167 * @param vendorCode a database vendor-specific exception code
168 * @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
169 * the cause is non-existent or unknown.
170 * @since 1.6
171 */
172 public SQLRecoverableException(String reason, String SQLState,
173 int vendorCode, Throwable cause) {
174 super (reason, SQLState, vendorCode, cause);
175 }
176
177 private static final long serialVersionUID = -4144386502923131579L;
178 }
|