Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/sql/SQLException#pubctors) \| [Methods](https://developer.android.com/reference/java/sql/SQLException#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/sql/SQLException#inhmethods)

# SQLException

` public class SQLException `   
` ` ` ` ` extends https://developer.android.com/reference/java/lang/Exception ` ` implements https://developer.android.com/reference/java/lang/Iterable<https://developer.android.com/reference/java/lang/Throwable> `

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [java.lang.Throwable](https://developer.android.com/reference/java/lang/Throwable) |||
|   | ↳ | [java.lang.Exception](https://developer.android.com/reference/java/lang/Exception) ||
|   |   | ↳ | java.sql.SQLException |

Known direct subclasses [BatchUpdateException](https://developer.android.com/reference/java/sql/BatchUpdateException), [SQLClientInfoException](https://developer.android.com/reference/java/sql/SQLClientInfoException), [SQLNonTransientException](https://developer.android.com/reference/java/sql/SQLNonTransientException), [SQLRecoverableException](https://developer.android.com/reference/java/sql/SQLRecoverableException), [SQLTransientException](https://developer.android.com/reference/java/sql/SQLTransientException), [SQLWarning](https://developer.android.com/reference/java/sql/SQLWarning) [BatchUpdateException](https://developer.android.com/reference/java/sql/BatchUpdateException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when an error occurs during a batch update operation. [SQLClientInfoException](https://developer.android.com/reference/java/sql/SQLClientInfoException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` is thrown when one or more client info properties could not be set on a `Connection`. [SQLNonTransientException](https://developer.android.com/reference/java/sql/SQLNonTransientException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when an instance where a retry of the same operation would fail unless the cause of the `SQLException` is corrected. [SQLRecoverableException](https://developer.android.com/reference/java/sql/SQLRecoverableException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown in situations where a previously failed operation might be able to succeed if the application performs some recovery steps and retries the entire transaction or in the case of a distributed transaction, the transaction branch. [SQLTransientException](https://developer.android.com/reference/java/sql/SQLTransientException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` is thrown in situations where a previoulsy failed operation might be able to succeed when the operation is retried without any intervention by application-level functionality. [SQLWarning](https://developer.android.com/reference/java/sql/SQLWarning) An exception that provides information on database access warnings.
Known indirect subclasses [DataTruncation](https://developer.android.com/reference/java/sql/DataTruncation), [SQLDataException](https://developer.android.com/reference/java/sql/SQLDataException), [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException), [SQLIntegrityConstraintViolationException](https://developer.android.com/reference/java/sql/SQLIntegrityConstraintViolationException), [SQLInvalidAuthorizationSpecException](https://developer.android.com/reference/java/sql/SQLInvalidAuthorizationSpecException), [SQLNonTransientConnectionException](https://developer.android.com/reference/java/sql/SQLNonTransientConnectionException), [SQLSyntaxErrorException](https://developer.android.com/reference/java/sql/SQLSyntaxErrorException), [SQLTimeoutException](https://developer.android.com/reference/java/sql/SQLTimeoutException), [SQLTransactionRollbackException](https://developer.android.com/reference/java/sql/SQLTransactionRollbackException), [SQLTransientConnectionException](https://developer.android.com/reference/java/sql/SQLTransientConnectionException) [DataTruncation](https://developer.android.com/reference/java/sql/DataTruncation) An exception thrown as a `DataTruncation` exception (on writes) or reported as a `DataTruncation` warning (on reads) when a data values is unexpectedly truncated for reasons other than its having execeeded `MaxFieldSize`. [SQLDataException](https://developer.android.com/reference/java/sql/SQLDataException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the SQLState class value is '*22*', or under vendor-specified conditions. [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the SQLState class value is '*0A*' ( the value is 'zero' A). [SQLIntegrityConstraintViolationException](https://developer.android.com/reference/java/sql/SQLIntegrityConstraintViolationException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the SQLState class value is '*23*', or under vendor-specified conditions. [SQLInvalidAuthorizationSpecException](https://developer.android.com/reference/java/sql/SQLInvalidAuthorizationSpecException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the SQLState class value is '*28*', or under vendor-specified conditions. [SQLNonTransientConnectionException](https://developer.android.com/reference/java/sql/SQLNonTransientConnectionException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown for the SQLState class value '*08*', or under vendor-specified conditions. [SQLSyntaxErrorException](https://developer.android.com/reference/java/sql/SQLSyntaxErrorException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the SQLState class value is '*42*', or under vendor-specified conditions. [SQLTimeoutException](https://developer.android.com/reference/java/sql/SQLTimeoutException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the timeout specified by `Statement` has expired.
[SQLTransactionRollbackException](https://developer.android.com/reference/java/sql/SQLTransactionRollbackException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` thrown when the SQLState class value is '*40*', or under vendor-specified conditions. [SQLTransientConnectionException](https://developer.android.com/reference/java/sql/SQLTransientConnectionException) The subclass of `https://developer.android.com/reference/java/sql/SQLException` for the SQLState class value '*08*', or under vendor-specified conditions.   

*** ** * ** ***

<br />

An exception that provides information on a database access error or other errors.

Each `SQLException` provides several kinds of information:

- a string describing the error. This is used as the Java Exception message, available via the method `getMesasge`.
- a "SQLstate" string, which follows either the XOPEN SQLstate conventions or the SQL:2003 conventions. The values of the SQLState string are described in the appropriate spec. The `DatabaseMetaData` method `getSQLStateType` can be used to discover whether the driver returns the XOPEN type or the SQL:2003 type.
- an integer error code that is specific to each vendor. Normally this will be the actual error code returned by the underlying database.
- a chain to a next Exception. This can be used to provide additional error information.
- the causal relationship, if any for this `SQLException`.

<br />

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException()() ` Constructs a `SQLException` object. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.String)(https://developer.android.com/reference/java/lang/String reason) ` Constructs a `SQLException` object with a given `reason`. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String reason, https://developer.android.com/reference/java/lang/String SQLState) ` Constructs a `SQLException` object with a given `reason` and `SQLState`. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.String,%20java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String reason, https://developer.android.com/reference/java/lang/String SQLState, int vendorCode) ` Constructs a `SQLException` object with a given `reason`, `SQLState` and `vendorCode`. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.String,%20java.lang.String,%20int,%20java.lang.Throwable)(https://developer.android.com/reference/java/lang/String reason, https://developer.android.com/reference/java/lang/String sqlState, int vendorCode, https://developer.android.com/reference/java/lang/Throwable cause) ` Constructs a `SQLException` object with a given `reason`, `SQLState`, `vendorCode` and `cause`. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.String,%20java.lang.String,%20java.lang.Throwable)(https://developer.android.com/reference/java/lang/String reason, https://developer.android.com/reference/java/lang/String sqlState, https://developer.android.com/reference/java/lang/Throwable cause) ` Constructs a `SQLException` object with a given `reason`, `SQLState` and `cause`. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.String,%20java.lang.Throwable)(https://developer.android.com/reference/java/lang/String reason, https://developer.android.com/reference/java/lang/Throwable cause) ` Constructs a `SQLException` object with a given `reason` and `cause`. |
| ` https://developer.android.com/reference/java/sql/SQLException#SQLException(java.lang.Throwable)(https://developer.android.com/reference/java/lang/Throwable cause) ` Constructs a `SQLException` object with a given `cause`. |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/java/sql/SQLException#getErrorCode()() ` Retrieves the vendor-specific exception code for this `SQLException` object. |
| ` https://developer.android.com/reference/java/sql/SQLException` | ` https://developer.android.com/reference/java/sql/SQLException#getNextException()() ` Retrieves the exception chained to this `SQLException` object by setNextException(SQLException ex). |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/sql/SQLException#getSQLState()() ` Retrieves the SQLState for this `SQLException` object. |
| ` https://developer.android.com/reference/java/util/Iterator<https://developer.android.com/reference/java/lang/Throwable>` | ` https://developer.android.com/reference/java/sql/SQLException#iterator()() ` Returns an iterator over the chained SQLExceptions. |
| ` void` | ` https://developer.android.com/reference/java/sql/SQLException#setNextException(java.sql.SQLException)(https://developer.android.com/reference/java/sql/SQLException ex) ` Adds an `SQLException` object to the end of the chain. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Throwable ` ` final void` ` https://developer.android.com/reference/java/lang/Throwable#addSuppressed(java.lang.Throwable)(https://developer.android.com/reference/java/lang/Throwable exception) `

Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.
` https://developer.android.com/reference/java/lang/Throwable` ` https://developer.android.com/reference/java/lang/Throwable#fillInStackTrace()() `

Fills in the execution stack trace.
` https://developer.android.com/reference/java/lang/Throwable` ` https://developer.android.com/reference/java/lang/Throwable#getCause()() `

Returns the cause of this throwable or `null` if the cause is nonexistent or unknown.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Throwable#getLocalizedMessage()() `

Creates a localized description of this throwable.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Throwable#getMessage()() `

Returns the detail message string of this throwable.
` https://developer.android.com/reference/java/lang/StackTraceElement` ` https://developer.android.com/reference/java/lang/Throwable#getStackTrace()() `

Provides programmatic access to the stack trace information printed by `https://developer.android.com/reference/java/lang/Throwable#printStackTrace()`.
` final https://developer.android.com/reference/java/lang/Throwable` ` https://developer.android.com/reference/java/lang/Throwable#getSuppressed()() `

Returns an array containing all of the exceptions that were suppressed, typically by the `try`-with-resources statement, in order to deliver this exception.
` https://developer.android.com/reference/java/lang/Throwable` ` https://developer.android.com/reference/java/lang/Throwable#initCause(java.lang.Throwable)(https://developer.android.com/reference/java/lang/Throwable cause) `

Initializes the *cause* of this throwable to the specified value.
` void` ` https://developer.android.com/reference/java/lang/Throwable#printStackTrace()() `

Prints this throwable and its backtrace to the standard error stream.
` void` ` https://developer.android.com/reference/java/lang/Throwable#printStackTrace(java.io.PrintWriter)(https://developer.android.com/reference/java/io/PrintWriter s) `

Prints this throwable and its backtrace to the specified print writer.
` void` ` https://developer.android.com/reference/java/lang/Throwable#printStackTrace(java.io.PrintStream)(https://developer.android.com/reference/java/io/PrintStream s) `

Prints this throwable and its backtrace to the specified print stream.
` void` ` https://developer.android.com/reference/java/lang/Throwable#setStackTrace(java.lang.StackTraceElement[])(https://developer.android.com/reference/java/lang/StackTraceElement stackTrace) `

Sets the stack trace elements that will be returned by `https://developer.android.com/reference/java/lang/Throwable#getStackTrace()` and printed by `https://developer.android.com/reference/java/lang/Throwable#printStackTrace()` and related methods.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Throwable#toString()() `

Returns a short description of this throwable.
From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/lang/Iterable ` ` default void` ` https://developer.android.com/reference/java/lang/Iterable#forEach(java.util.function.Consumer<?%20super%20T>)(https://developer.android.com/reference/java/util/function/Consumer<? super T> action) `

Performs the given action for each element of the `Iterable` until all elements have been processed or the action throws an exception.
` abstract https://developer.android.com/reference/java/util/Iterator<https://developer.android.com/reference/java/lang/Throwable>` ` https://developer.android.com/reference/java/lang/Iterable#iterator()() `

Returns an iterator over elements of type `T`.
` default https://developer.android.com/reference/java/util/Spliterator<https://developer.android.com/reference/java/lang/Throwable>` ` https://developer.android.com/reference/java/lang/Iterable#spliterator()() `

Creates a `https://developer.android.com/reference/java/util/Spliterator` over the elements described by this `Iterable`.

## Public constructors

### SQLException

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException ()
```

Constructs a `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 `https://developer.android.com/reference/java/lang/Throwable#initCause(java.lang.Throwable)` method.

<br />

<br />

### SQLException

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (String reason)
```

Constructs a `SQLException` object with a given `reason`. The `SQLState` is initialized to `null` and the vender code is initialized to 0. The `cause` is not initialized, and may subsequently be initialized by a call to the `https://developer.android.com/reference/java/lang/Throwable#initCause(java.lang.Throwable)` method.

<br />

<br />

| Parameters ||
|---|---|
| `reason` | `String`: a description of the exception <br /> |

### SQLException

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (String reason, 
                String SQLState)
```

Constructs a `SQLException` object with a given `reason` and `SQLState`. The `cause` is not initialized, and may subsequently be initialized by a call to the `https://developer.android.com/reference/java/lang/Throwable#initCause(java.lang.Throwable)` method. The vendor code is initialized to 0.

<br />

<br />

| Parameters ||
|---|---|
| `reason` | `String`: a description of the exception <br /> |
| `SQLState` | `String`: an XOPEN or SQL:2003 code identifying the exception <br /> |

### SQLException

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (String reason, 
                String SQLState, 
                int vendorCode)
```

Constructs a `SQLException` object with a given `reason`, `SQLState` and `vendorCode`. The `cause` is not initialized, and may subsequently be initialized by a call to the `https://developer.android.com/reference/java/lang/Throwable#initCause(java.lang.Throwable)` method.

<br />

<br />

| Parameters ||
|---|---|
| `reason` | `String`: a description of the exception <br /> |
| `SQLState` | `String`: an XOPEN or SQL:2003 code identifying the exception <br /> |
| `vendorCode` | `int`: a database vendor-specific exception code <br /> |

### SQLException

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (String reason, 
                String sqlState, 
                int vendorCode, 
                Throwable cause)
```

Constructs a `SQLException` object with a given `reason`, `SQLState`, `vendorCode` and `cause`.

<br />

<br />

| Parameters ||
|---|---|
| `reason` | `String`: a description of the exception <br /> |
| `sqlState` | `String`: an XOPEN or SQL:2003 code identifying the exception <br /> |
| `vendorCode` | `int`: a database vendor-specific exception code <br /> |
| `cause` | `Throwable`: 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. <br /> |

### SQLException

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (String reason, 
                String sqlState, 
                Throwable cause)
```

Constructs a `SQLException` object with a given `reason`, `SQLState` and `cause`. The vendor code is initialized to 0.

<br />

<br />

| Parameters ||
|---|---|
| `reason` | `String`: a description of the exception. <br /> |
| `sqlState` | `String`: an XOPEN or SQL:2003 code identifying the exception <br /> |
| `cause` | `Throwable`: 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. <br /> |

### SQLException

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (String reason, 
                Throwable cause)
```

Constructs a `SQLException` object with a given `reason` and `cause`. The `SQLState` is initialized to `null` and the vendor code is initialized to 0.

<br />

<br />

| Parameters ||
|---|---|
| `reason` | `String`: a description of the exception. <br /> |
| `cause` | `Throwable`: 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. <br /> |

### SQLException

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException (Throwable cause)
```

Constructs a `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`.

<br />

<br />

| Parameters ||
|---|---|
| `cause` | `Throwable`: 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. <br /> |

## Public methods

### getErrorCode

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getErrorCode ()
```

Retrieves the vendor-specific exception code for this `SQLException` object.

<br />

| Returns ||
|---|---|
| `int` | the vendor's error code <br /> |

### getNextException

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLException getNextException ()
```

Retrieves the exception chained to this `SQLException` object by setNextException(SQLException ex).

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/sql/SQLException` | the next `SQLException` object in the chain; `null` if there are none <br /> |

**See also:**

- `https://developer.android.com/reference/java/sql/SQLException#setNextException(java.sql.SQLException)`

### getSQLState

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getSQLState ()
```

Retrieves the SQLState for this `SQLException` object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the SQLState value <br /> |

### iterator

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Iterator<Throwable> iterator ()
```

Returns an iterator over the chained SQLExceptions. The iterator will be used to iterate over each SQLException and its underlying cause (if any).

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Iterator<https://developer.android.com/reference/java/lang/Throwable>` | an iterator over the chained SQLExceptions and causes in the proper order <br /> |

### setNextException

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setNextException (SQLException ex)
```

Adds an `SQLException` object to the end of the chain.

<br />

| Parameters ||
|---|---|
| `ex` | `SQLException`: the new exception that will be added to the end of the `SQLException` chain <br /> |

**See also:**

- `https://developer.android.com/reference/java/sql/SQLException#getNextException()`