SQLExceptionpublic class SQLException extends Exception implements IterableAn 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 .
|
Fields Summary |
---|
private String | SQLState | private int | vendorCode | private volatile SQLException | next | private static final AtomicReferenceFieldUpdater | nextUpdater | private static final long | serialVersionUID |
Constructors Summary |
---|
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
{@link Throwable#initCause(java.lang.Throwable)} method.
super(reason);
this.SQLState = SQLState;
this.vendorCode = vendorCode;
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
DriverManager.println("SQLState(" + SQLState +
") vendor code(" + vendorCode + ")");
printStackTrace(DriverManager.getLogWriter());
}
}
| 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
{@link Throwable#initCause(java.lang.Throwable)} method. The vendor code
is initialized to 0.
super(reason);
this.SQLState = SQLState;
this.vendorCode = 0;
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
printStackTrace(DriverManager.getLogWriter());
DriverManager.println("SQLException: SQLState(" + SQLState + ")");
}
}
| 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
{@link Throwable#initCause(java.lang.Throwable)} method.
super(reason);
this.SQLState = null;
this.vendorCode = 0;
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
printStackTrace(DriverManager.getLogWriter());
}
}
| 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
{@link Throwable#initCause(java.lang.Throwable)} method.
super();
this.SQLState = null;
this.vendorCode = 0;
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
printStackTrace(DriverManager.getLogWriter());
}
}
| 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 .
super(cause);
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
printStackTrace(DriverManager.getLogWriter());
}
}
| 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.
super(reason,cause);
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
printStackTrace(DriverManager.getLogWriter());
}
}
| 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.
super(reason,cause);
this.SQLState = sqlState;
this.vendorCode = 0;
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
printStackTrace(DriverManager.getLogWriter());
DriverManager.println("SQLState(" + SQLState + ")");
}
}
| public SQLException(String reason, String sqlState, int vendorCode, Throwable cause)Constructs a SQLException object with a given
reason , SQLState , vendorCode
and cause .
super(reason,cause);
this.SQLState = sqlState;
this.vendorCode = vendorCode;
if (!(this instanceof SQLWarning)) {
if (DriverManager.getLogWriter() != null) {
DriverManager.println("SQLState(" + SQLState +
") vendor code(" + vendorCode + ")");
printStackTrace(DriverManager.getLogWriter());
}
}
|
Methods Summary |
---|
public int | getErrorCode()Retrieves the vendor-specific exception code
for this SQLException object.
return (vendorCode);
| public java.sql.SQLException | getNextException()Retrieves the exception chained to this
SQLException object by setNextException(SQLException ex).
return (next);
| public java.lang.String | getSQLState()Retrieves the SQLState for this SQLException object.
return (SQLState);
| public java.util.Iterator | iterator()Returns an iterator over the chained SQLExceptions. The iterator will
be used to iterate over each SQLException and its underlying cause
(if any).
return new Iterator<Throwable>() {
SQLException firstException = SQLException.this;
SQLException nextException = firstException.getNextException();
Throwable cause = firstException.getCause();
public boolean hasNext() {
if(firstException != null || nextException != null || cause != null)
return true;
return false;
}
public Throwable next() {
Throwable throwable = null;
if(firstException != null){
throwable = firstException;
firstException = null;
}
else if(cause != null){
throwable = cause;
cause = cause.getCause();
}
else if(nextException != null){
throwable = nextException;
cause = nextException.getCause();
nextException = nextException.getNextException();
}
else
throw new NoSuchElementException();
return throwable;
}
public void remove() {
throw new UnsupportedOperationException();
}
};
| public void | setNextException(java.sql.SQLException ex)Adds an SQLException object to the end of the chain.
SQLException current = this;
for(;;) {
SQLException next=current.next;
if (next != null) {
current = next;
continue;
}
if (nextUpdater.compareAndSet(current,null,ex)) {
return;
}
current=current.next;
}
|
|