/* * @(#)SQLWarning.java 1.25 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.sql; /** *
An exception that provides information on database access * warnings. Warnings are silently chained to the object whose method * caused it to be reported. *
* Warnings may be retrieved from Connection
, Statement
,
* and ResultSet
objects. Trying to retrieve a warning on a
* connection after it has been closed will cause an exception to be thrown.
* Similarly, trying to retrieve a warning on a statement after it has been
* closed or on a result set after it has been closed will cause
* an exception to be thrown. Note that closing a statement also
* closes a result set that it might have produced.
*
* @see Connection#getWarnings
* @see Statement#getWarnings
* @see ResultSet#getWarnings
*/
public class SQLWarning extends SQLException {
/**
* Constructs a fully-specified SQLWarning
object
* initialized with the given values.
*
* @param reason a description of the warning
* @param SQLstate an XOPEN code identifying the warning
* @param vendorCode a database vendor-specific warning code
*/
public SQLWarning(String reason, String SQLstate, int vendorCode) {
super(reason, SQLstate, vendorCode);
DriverManager.println("SQLWarning: reason(" + reason +
") SQLstate(" + SQLstate +
") vendor code(" + vendorCode + ")");
}
/**
* Constructs an SQLWarning
object
* with the given reason and SQLState;
* the vendorCode defaults to 0.
*
* @param reason a description of the warning
* @param SQLstate an XOPEN code identifying the warning
*/
public SQLWarning(String reason, String SQLstate) {
super(reason, SQLstate);
DriverManager.println("SQLWarning: reason(" + reason +
") SQLState(" + SQLstate + ")");
}
/**
* Constructs an SQLWarning
object
* with the given value for a reason; SQLstate defaults to
* null
, and vendorCode defaults to 0.
*
* @param reason a description of the warning
*/
public SQLWarning(String reason) {
super(reason);
DriverManager.println("SQLWarning: reason(" + reason + ")");
}
/**
* Constructs a default SQLWarning
object.
* The reason defaults to null
, SQLState
* defaults to null
, and vendorCode defaults to 0.
*
*/
public SQLWarning() {
super();
DriverManager.println("SQLWarning: ");
}
/**
* Retrieves the warning chained to this SQLWarning
object.
*
* @return the next SQLException
in the chain; null
if none
* @see #setNextWarning
*/
public SQLWarning getNextWarning() {
try {
return ((SQLWarning)getNextException());
} catch (ClassCastException ex) {
// The chained value isn't a SQLWarning.
// This is a programming error by whoever added it to
// the SQLWarning chain. We throw a Java "Error".
throw new Error("SQLWarning chain holds value that is not a SQLWarning");
}
}
/**
* Adds an SQLWarning
object to the end of the chain.
*
* @param w the new end of the SQLException
chain
* @see #getNextWarning
*/
public void setNextWarning(SQLWarning w) {
setNextException(w);
}
}