Class SQLExceptionFactory


  • public class SQLExceptionFactory
    extends ExceptionFactory
    Class to create SQLException
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.sql.SQLException getSQLException​(java.lang.String message, java.lang.String messageId, java.sql.SQLException next, int severity, java.lang.Throwable t, java.lang.Object... args)
      method to construct SQLException version specific drivers can overload this method to create version specific exceptions
      java.sql.SQLException getSQLException​(java.lang.String messageId, java.sql.SQLException next, java.lang.Throwable cause, java.lang.Object... args)
      Construct an SQLException whose message and severity are derived from the message id.
      private StandardException wrapArgsForTransportAcrossDRDA​(java.lang.String messageId, java.lang.Throwable cause, java.lang.Object[] args)
      The following method helps handle DERBY-1178.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SQLExceptionFactory

        public SQLExceptionFactory()
    • Method Detail

      • getSQLException

        public java.sql.SQLException getSQLException​(java.lang.String message,
                                                     java.lang.String messageId,
                                                     java.sql.SQLException next,
                                                     int severity,
                                                     java.lang.Throwable t,
                                                     java.lang.Object... args)

        method to construct SQLException version specific drivers can overload this method to create version specific exceptions

        This implementation creates JDBC 4 exceptions.

         SQLSTATE CLASS (prefix)     Exception
         0A                          java.sql.SQLFeatureNotSupportedException
         08                          java.sql.SQLNonTransientConnectionException
         22                          java.sql.SQLDataException
         28                          java.sql.SQLInvalidAuthorizationSpecException
         40                          java.sql.SQLTransactionRollbackException
         42                          java.sql.SQLSyntaxErrorException
         
        Specified by:
        getSQLException in class ExceptionFactory
        Parameters:
        message - the exception message
        messageId - the message id
        next - the next SQLException
        severity - the severity of the exception
        t - the cause of the exception
        args - the message arguments
        Returns:
        an SQLException
      • getSQLException

        public final java.sql.SQLException getSQLException​(java.lang.String messageId,
                                                           java.sql.SQLException next,
                                                           java.lang.Throwable cause,
                                                           java.lang.Object... args)
        Construct an SQLException whose message and severity are derived from the message id.
        Specified by:
        getSQLException in class ExceptionFactory
        Parameters:
        messageId - the message id
        next - the next SQLException
        cause - the cause of the exception
        args - the message arguments
        Returns:
        an SQLException
      • wrapArgsForTransportAcrossDRDA

        private StandardException wrapArgsForTransportAcrossDRDA​(java.lang.String messageId,
                                                                 java.lang.Throwable cause,
                                                                 java.lang.Object[] args)

        The following method helps handle DERBY-1178. The problem is that we may need to serialize our final SQLException across the DRDA network layer. That serialization involves some clever encoding of the Derby messageID and arguments. Unfortunately, once we create one of the JDBC4-specific subclasses of SQLException, we lose the messageID and args. This method creates a dummy StandardException which preserves that information, unless the cause is already a StandardException which contains the necessary information for serializing the exception.