Package org.h2.message
Class DbException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.lang.RuntimeException
-
- org.h2.message.DbException
-
- All Implemented Interfaces:
java.io.Serializable
public class DbException extends java.lang.RuntimeExceptionThis exception wraps a checked exception. It is used in methods where checked exceptions are not supported, for example in a Comparator.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringHIDE_SQLIf the SQL statement contains this text, then it is never added to the SQL exception.private static java.util.PropertiesMESSAGESprivate static DbExceptionOOMEprivate static longserialVersionUIDprivate java.lang.Objectsourcestatic java.sql.SQLExceptionSQL_OOMEThrown when OOME exception happens on handle error insideconvert(java.lang.Throwable).
-
Constructor Summary
Constructors Modifier Constructor Description privateDbException(java.sql.SQLException e)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DbExceptionaddSQL(java.lang.String sql)Set the SQL statement of the given exception.static java.lang.StringbuildMessageForException(JdbcException e)Builds message for an exception.static DbExceptionconvert(java.lang.Throwable e)Convert a throwable to an SQL exception using the default mapping.static DbExceptionconvertInvocation(java.lang.reflect.InvocationTargetException te, java.lang.String message)Convert an InvocationTarget exception to a database exception.static DbExceptionconvertIOException(java.io.IOException e, java.lang.String message)Convert an IO exception to a database exception.private static java.lang.StringfilterSQL(java.lang.String sql)static DbExceptionfromUser(java.lang.String sqlstate, java.lang.String message)Create a database exception for an arbitrary SQLState.static DbExceptionget(int errorCode)Create a database exception for a specific error code.static DbExceptionget(int errorCode, java.lang.String p1)Create a database exception for a specific error code.static DbExceptionget(int errorCode, java.lang.String... params)Create a database exception for a specific error code.static DbExceptionget(int errorCode, java.lang.Throwable cause, java.lang.String... params)Create a database exception for a specific error code.intgetErrorCode()Get the error code.static DbExceptiongetFileVersionError(java.lang.String dataFileName)Gets a file version exception.static java.lang.RuntimeExceptiongetInternalError()Gets an internal error.static java.lang.RuntimeExceptiongetInternalError(java.lang.String s)Gets an internal error.static DbExceptiongetInvalidExpressionTypeException(java.lang.String param, Typed e)Gets a SQL exception meaning the type of expression is invalid or unknown.static DbExceptiongetInvalidValueException(java.lang.String param, java.lang.Object value)Gets a SQL exception meaning this value is invalid.static java.sql.SQLExceptiongetJdbcSQLException(int errorCode)Gets the SQL exception object for a specific error code.static java.sql.SQLExceptiongetJdbcSQLException(int errorCode, java.lang.String p1)Gets the SQL exception object for a specific error code.static java.sql.SQLExceptiongetJdbcSQLException(int errorCode, java.lang.Throwable cause, java.lang.String... params)Gets the SQL exception object for a specific error code.static java.sql.SQLExceptiongetJdbcSQLException(java.lang.String message, java.lang.String sql, java.lang.String state, int errorCode, java.lang.Throwable cause, java.lang.String stackTrace)Creates a SQLException.java.lang.ObjectgetSource()java.sql.SQLExceptiongetSQLException()Get the SQLException object.static DbExceptiongetSyntaxError(int errorCode, java.lang.String sql, int index, java.lang.String... params)Create a syntax error exception for a specific error code.static DbExceptiongetSyntaxError(java.lang.String sql, int index)Create a syntax error exception.static DbExceptiongetSyntaxError(java.lang.String sql, int index, java.lang.String message)Create a syntax error exception.static DbExceptiongetUnsupportedException(java.lang.String message)Gets a SQL exception meaning this feature is not supported.static DbExceptiongetValueTooLongException(java.lang.String columnOrType, java.lang.String value, long valueLength)Gets a SQL exception meaning this value is too long.static voidprintNextExceptions(java.sql.SQLException e, java.io.PrintStream s)Prints up to 100 next exceptions for a specified SQL exception.static voidprintNextExceptions(java.sql.SQLException e, java.io.PrintWriter s)Prints up to 100 next exceptions for a specified SQL exception.private static java.lang.Stringquote(java.lang.String s)voidsetSource(java.lang.Object source)static java.sql.SQLExceptiontoSQLException(java.lang.Throwable e)Convert an exception to a SQL exception using the default mapping.static voidtraceThrowable(java.lang.Throwable e)Write the exception to the driver manager log writer if configured.private static java.lang.Stringtranslate(java.lang.String key, java.lang.String... params)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
HIDE_SQL
public static final java.lang.String HIDE_SQL
If the SQL statement contains this text, then it is never added to the SQL exception. Hiding the SQL statement may be important if it contains a passwords, such as a CREATE LINKED TABLE statement.- See Also:
- Constant Field Values
-
MESSAGES
private static final java.util.Properties MESSAGES
-
SQL_OOME
public static final java.sql.SQLException SQL_OOME
Thrown when OOME exception happens on handle error insideconvert(java.lang.Throwable).
-
OOME
private static final DbException OOME
-
source
private java.lang.Object source
-
-
Method Detail
-
translate
private static java.lang.String translate(java.lang.String key, java.lang.String... params)
-
quote
private static java.lang.String quote(java.lang.String s)
-
getSQLException
public java.sql.SQLException getSQLException()
Get the SQLException object.- Returns:
- the exception
-
getErrorCode
public int getErrorCode()
Get the error code.- Returns:
- the error code
-
addSQL
public DbException addSQL(java.lang.String sql)
Set the SQL statement of the given exception. This method may create a new object.- Parameters:
sql- the SQL statement- Returns:
- the exception
-
get
public static DbException get(int errorCode)
Create a database exception for a specific error code.- Parameters:
errorCode- the error code- Returns:
- the exception
-
get
public static DbException get(int errorCode, java.lang.String p1)
Create a database exception for a specific error code.- Parameters:
errorCode- the error codep1- the first parameter of the message- Returns:
- the exception
-
get
public static DbException get(int errorCode, java.lang.Throwable cause, java.lang.String... params)
Create a database exception for a specific error code.- Parameters:
errorCode- the error codecause- the cause of the exceptionparams- the list of parameters of the message- Returns:
- the exception
-
get
public static DbException get(int errorCode, java.lang.String... params)
Create a database exception for a specific error code.- Parameters:
errorCode- the error codeparams- the list of parameters of the message- Returns:
- the exception
-
fromUser
public static DbException fromUser(java.lang.String sqlstate, java.lang.String message)
Create a database exception for an arbitrary SQLState.- Parameters:
sqlstate- the state to usemessage- the message to use- Returns:
- the exception
-
getSyntaxError
public static DbException getSyntaxError(java.lang.String sql, int index)
Create a syntax error exception.- Parameters:
sql- the SQL statementindex- the position of the error in the SQL statement- Returns:
- the exception
-
getSyntaxError
public static DbException getSyntaxError(java.lang.String sql, int index, java.lang.String message)
Create a syntax error exception.- Parameters:
sql- the SQL statementindex- the position of the error in the SQL statementmessage- the message- Returns:
- the exception
-
getSyntaxError
public static DbException getSyntaxError(int errorCode, java.lang.String sql, int index, java.lang.String... params)
Create a syntax error exception for a specific error code.- Parameters:
errorCode- the error codesql- the SQL statementindex- the position of the error in the SQL statementparams- the list of parameters of the message- Returns:
- the exception
-
getUnsupportedException
public static DbException getUnsupportedException(java.lang.String message)
Gets a SQL exception meaning this feature is not supported.- Parameters:
message- what exactly is not supported- Returns:
- the exception
-
getInvalidValueException
public static DbException getInvalidValueException(java.lang.String param, java.lang.Object value)
Gets a SQL exception meaning this value is invalid.- Parameters:
param- the name of the parametervalue- the value passed- Returns:
- the exception
-
getInvalidExpressionTypeException
public static DbException getInvalidExpressionTypeException(java.lang.String param, Typed e)
Gets a SQL exception meaning the type of expression is invalid or unknown.- Parameters:
param- the name of the parametere- the expression- Returns:
- the exception
-
getValueTooLongException
public static DbException getValueTooLongException(java.lang.String columnOrType, java.lang.String value, long valueLength)
Gets a SQL exception meaning this value is too long.- Parameters:
columnOrType- column with data type or data type namevalue- string representation of value, will be truncated to 80 charactersvalueLength- the actual length of value,-1Lif unknown- Returns:
- the exception
-
getFileVersionError
public static DbException getFileVersionError(java.lang.String dataFileName)
Gets a file version exception.- Parameters:
dataFileName- the name of the database- Returns:
- the exception
-
getInternalError
public static java.lang.RuntimeException getInternalError(java.lang.String s)
Gets an internal error.- Parameters:
s- the message- Returns:
- the RuntimeException object
-
getInternalError
public static java.lang.RuntimeException getInternalError()
Gets an internal error.- Returns:
- the RuntimeException object
-
toSQLException
public static java.sql.SQLException toSQLException(java.lang.Throwable e)
Convert an exception to a SQL exception using the default mapping.- Parameters:
e- the root cause- Returns:
- the SQL exception object
-
convert
public static DbException convert(java.lang.Throwable e)
Convert a throwable to an SQL exception using the default mapping. All errors except the following are re-thrown: StackOverflowError, LinkageError.- Parameters:
e- the root cause- Returns:
- the exception object
-
convertInvocation
public static DbException convertInvocation(java.lang.reflect.InvocationTargetException te, java.lang.String message)
Convert an InvocationTarget exception to a database exception.- Parameters:
te- the root causemessage- the added message or null- Returns:
- the database exception object
-
convertIOException
public static DbException convertIOException(java.io.IOException e, java.lang.String message)
Convert an IO exception to a database exception.- Parameters:
e- the root causemessage- the message or null- Returns:
- the database exception object
-
getJdbcSQLException
public static java.sql.SQLException getJdbcSQLException(int errorCode)
Gets the SQL exception object for a specific error code.- Parameters:
errorCode- the error code- Returns:
- the SQLException object
-
getJdbcSQLException
public static java.sql.SQLException getJdbcSQLException(int errorCode, java.lang.String p1)Gets the SQL exception object for a specific error code.- Parameters:
errorCode- the error codep1- the first parameter of the message- Returns:
- the SQLException object
-
getJdbcSQLException
public static java.sql.SQLException getJdbcSQLException(int errorCode, java.lang.Throwable cause, java.lang.String... params)Gets the SQL exception object for a specific error code.- Parameters:
errorCode- the error codecause- the cause of the exceptionparams- the list of parameters of the message- Returns:
- the SQLException object
-
getJdbcSQLException
public static java.sql.SQLException getJdbcSQLException(java.lang.String message, java.lang.String sql, java.lang.String state, int errorCode, java.lang.Throwable cause, java.lang.String stackTrace)Creates a SQLException.- Parameters:
message- the reasonsql- the SQL statementstate- the SQL stateerrorCode- the error codecause- the exception that was the reason for this exceptionstackTrace- the stack trace- Returns:
- the SQLException object
-
filterSQL
private static java.lang.String filterSQL(java.lang.String sql)
-
buildMessageForException
public static java.lang.String buildMessageForException(JdbcException e)
Builds message for an exception.- Parameters:
e- exception- Returns:
- message
-
printNextExceptions
public static void printNextExceptions(java.sql.SQLException e, java.io.PrintWriter s)Prints up to 100 next exceptions for a specified SQL exception.- Parameters:
e- SQL exceptions- print writer
-
printNextExceptions
public static void printNextExceptions(java.sql.SQLException e, java.io.PrintStream s)Prints up to 100 next exceptions for a specified SQL exception.- Parameters:
e- SQL exceptions- print stream
-
getSource
public java.lang.Object getSource()
-
setSource
public void setSource(java.lang.Object source)
-
traceThrowable
public static void traceThrowable(java.lang.Throwable e)
Write the exception to the driver manager log writer if configured.- Parameters:
e- the exception
-
-