1/*
2 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26package java.sql;
27
28/**
29 * The subclass of {@link SQLException} thrown when the SQLState class value
30 * is '<i>22</i>', or under vendor-specified conditions.  This indicates
31 * various data errors, including but not limited to data conversion errors,
32 * division by 0, and invalid arguments to functions.
33 * <p>
34 * Please consult your driver vendor documentation for the vendor-specified
35 * conditions for which this <code>Exception</code> may be thrown.
36 * @since 1.6
37 */
38public class SQLDataException extends SQLNonTransientException {
39
40        /**
41         * Constructs a <code>SQLDataException</code> object.
42         * The <code>reason</code>, <code>SQLState</code> are initialized
43         * to <code>null</code> and the vendor code is initialized to 0.
44         *
45         * The <code>cause</code> is not initialized, and may subsequently be
46         * initialized by a call to
47         * {@link Throwable#initCause(java.lang.Throwable)} method.
48         * <p>
49         *
50         * @since 1.6
51         */
52        public SQLDataException() {
53                 super();
54        }
55
56        /**
57         * Constructs a <code>SQLDataException</code> object with a given
58         * <code>reason</code>.
59         * The <code>SQLState</code> is initialized
60         * to <code>null</code> and the vendor code is initialized to 0.
61         *
62         * The <code>cause</code> is not initialized, and may subsequently be
63         * initialized by a call to
64         * {@link Throwable#initCause(java.lang.Throwable)} method.
65         * <p>
66         *
67         * @param reason a description of the exception
68         * @since 1.6
69         */
70        public SQLDataException(String reason) {
71                super(reason);
72        }
73
74        /**
75         * Constructs a <code>SQLDataException</code> object with a given
76         * <code>reason</code> and <code>SQLState</code>. The
77         * vendor code is initialized to 0.
78         *
79         * The <code>cause</code> is not initialized, and may subsequently be
80         * initialized by a call to
81         * {@link Throwable#initCause(java.lang.Throwable)} method.
82         * <p>
83         * @param reason a description of the exception
84         * @param SQLState an XOPEN or SQL:2003 code identifying the exception
85         * @since 1.6
86         */
87        public SQLDataException(String reason, String SQLState) {
88                super(reason, SQLState);
89        }
90
91        /**
92         * Constructs a <code>SQLDataException</code> object with a given
93         * <code>reason</code>, <code>SQLState</code>  and
94         * <code>vendorCode</code>.
95         *
96         * The <code>cause</code> is not initialized, and may subsequently be
97         * initialized by a call to
98         * {@link Throwable#initCause(java.lang.Throwable)} method.
99         * <p>
100         * @param reason a description of the exception
101         * @param SQLState an XOPEN or SQL:2003 code identifying the exception
102         * @param vendorCode a database vendor specific exception code
103         * @since 1.6
104         */
105        public SQLDataException(String reason, String SQLState, int vendorCode) {
106                 super(reason, SQLState, vendorCode);
107        }
108
109    /**
110     * Constructs a <code>SQLDataException</code> object with a given
111     * <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 SQLDataException(Throwable cause) {
123        super(cause);
124    }
125
126    /**
127     * Constructs a <code>SQLDataException</code> object with a given
128     * <code>reason</code> and  <code>cause</code>.
129     * The <code>SQLState</code> is  initialized to <code>null</code>
130     * and the vendor code is initialized to 0.
131     * <p>
132     * @param reason a description of the exception.
133     * @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
134     *     the cause is non-existent or unknown.
135     * @since 1.6
136     */
137    public SQLDataException(String reason, Throwable cause) {
138         super(reason, cause);
139    }
140
141    /**
142     *  Constructs a <code>SQLDataException</code> object with a given
143     * <code>reason</code>, <code>SQLState</code> and  <code>cause</code>.
144     * The vendor code is initialized to 0.
145     * <p>
146     * @param reason a description of the exception.
147     * @param SQLState an XOPEN or SQL:2003 code identifying the exception
148     * @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
149     *     the cause is non-existent or unknown.
150     * @since 1.6
151     */
152    public SQLDataException(String reason, String SQLState, Throwable cause) {
153        super(reason, SQLState, cause);
154    }
155
156    /**
157     * Constructs a <code>SQLDataException</code> object with a given
158     * <code>reason</code>, <code>SQLState</code>, <code>vendorCode</code>
159     * and  <code>cause</code>.
160     * <p>
161     * @param reason a description of the exception
162     * @param SQLState an XOPEN or SQL:2003 code identifying the exception
163     * @param vendorCode a database vendor-specific exception code
164     * @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
165     *     the cause is non-existent or unknown.
166     * @since 1.6
167     */
168    public SQLDataException(String reason, String SQLState, int vendorCode, Throwable cause) {
169          super(reason, SQLState, vendorCode, cause);
170    }
171
172   private static final long serialVersionUID = -6889123282670549800L;
173}
174