public class SQLException extends Exception implements Iterable<Throwable>
An exception that provides information on a database access error or other errors.
Each SQLException provides several kinds of information:
 
getMesasge.
   DatabaseMetaData method getSQLStateType
       can be used to discover whether the driver returns the XOPEN type or
       the SQL:2003 type.
   SQLException.
 | Constructor and Description | 
|---|
| SQLException()Constructs a  SQLExceptionobject. | 
| SQLException(String reason)Constructs a  SQLExceptionobject with a givenreason. | 
| SQLException(String reason,
            String SQLState)Constructs a  SQLExceptionobject with a givenreasonandSQLState. | 
| SQLException(String reason,
            String SQLState,
            int vendorCode)Constructs a  SQLExceptionobject with a givenreason,SQLStateandvendorCode. | 
| SQLException(String reason,
            String sqlState,
            int vendorCode,
            Throwable cause)Constructs a  SQLExceptionobject with a givenreason,SQLState,vendorCodeandcause. | 
| SQLException(String reason,
            String sqlState,
            Throwable cause)Constructs a  SQLExceptionobject with a givenreason,SQLStateandcause. | 
| SQLException(String reason,
            Throwable cause)Constructs a  SQLExceptionobject with a givenreasonandcause. | 
| SQLException(Throwable cause)Constructs a  SQLExceptionobject with a givencause. | 
| Modifier and Type | Method and Description | 
|---|---|
| int | getErrorCode()Retrieves the vendor-specific exception code
 for this  SQLExceptionobject. | 
| SQLException | getNextException()Retrieves the exception chained to this
  SQLExceptionobject by setNextException(SQLException ex). | 
| String | getSQLState()Retrieves the SQLState for this  SQLExceptionobject. | 
| Iterator<Throwable> | iterator()Returns an iterator over the chained SQLExceptions. | 
| void | setNextException(SQLException ex)Adds an  SQLExceptionobject to the end of the chain. | 
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic SQLException(String reason, String SQLState, int vendorCode)
SQLException object with a given
 reason, SQLState  and
 vendorCode.
 The cause is not initialized, and may subsequently be
 initialized by a call to the
 Throwable.initCause(java.lang.Throwable) method.
 reason - a description of the exceptionSQLState - an XOPEN or SQL:2003 code identifying the exceptionvendorCode - a database vendor-specific exception codepublic SQLException(String reason, String SQLState)
SQLException object with a given
 reason and SQLState.
 The cause is not initialized, and may subsequently be
 initialized by a call to the
 Throwable.initCause(java.lang.Throwable) method. The vendor code
 is initialized to 0.
 reason - a description of the exceptionSQLState - an XOPEN or SQL:2003 code identifying the exceptionpublic SQLException(String reason)
SQLException object with a given
 reason. The  SQLState  is initialized to
 null and the vendor code is initialized to 0.
 The cause is not initialized, and may subsequently be
 initialized by a call to the
 Throwable.initCause(java.lang.Throwable) method.
 reason - a description of the exceptionpublic SQLException()
SQLException object.
 The reason, SQLState are initialized
 to null and the vendor code is initialized to 0.
 The cause is not initialized, and may subsequently be
 initialized by a call to the
 Throwable.initCause(java.lang.Throwable) method.public SQLException(Throwable cause)
SQLException object with a given
 cause.
 The SQLState is initialized
 to null and the vendor code is initialized to 0.
 The reason  is initialized to null if
 cause==null or to cause.toString() if
 cause!=null.
 cause - the underlying reason for this SQLException
 (which is saved for later retrieval by the getCause() method);
 may be null indicating the cause is non-existent or unknown.public SQLException(String reason, Throwable cause)
SQLException object with a given
 reason and  cause.
 The SQLState is  initialized to null
 and the vendor code is initialized to 0.
 reason - a description of the exception.cause - the underlying reason for this SQLException
 (which is saved for later retrieval by the getCause() method);
 may be null indicating the cause is non-existent or unknown.public SQLException(String reason, String sqlState, Throwable cause)
SQLException object with a given
 reason, SQLState and  cause.
 The vendor code is initialized to 0.
 reason - a description of the exception.sqlState - an XOPEN or SQL:2003 code identifying the exceptioncause - the underlying reason for this SQLException
 (which is saved for later retrieval by the
 getCause() method); may be null indicating
     the cause is non-existent or unknown.public SQLException(String reason, String sqlState, int vendorCode, Throwable cause)
SQLException object with a given
 reason, SQLState, vendorCode
 and  cause.
 reason - a description of the exceptionsqlState - an XOPEN or SQL:2003 code identifying the exceptionvendorCode - a database vendor-specific exception codecause - the underlying reason for this SQLException
 (which is saved for later retrieval by the getCause() method);
 may be null indicating the cause is non-existent or unknown.public String getSQLState()
SQLException object.public int getErrorCode()
SQLException object.public SQLException getNextException()
SQLException object by setNextException(SQLException ex).SQLException object in the chain;
         null if there are nonesetNextException(java.sql.SQLException)public void setNextException(SQLException ex)
SQLException object to the end of the chain.ex - the new exception that will be added to the end of
            the SQLException chaingetNextException() Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.