net.snowflake.client.jdbc

## Class SnowflakeSQLLoggedException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.sql.SQLException
      - - net.snowflake.client.jdbc.SnowflakeSQLException
        - - net.snowflake.client.jdbc.SnowflakeSQLLoggedException

All Implemented Interfaces:
  Serializable, Iterable<Throwable>

    public class SnowflakeSQLLoggedException
    extends SnowflakeSQLException

Author:
  mknister

  This SnowflakeSQLLoggedException class extends the SnowflakeSQLException class to add OOB telemetry data for sql exceptions. Not all sql exceptions require OOB telemetry logging so the exceptions in this class should only be thrown if there is a need for logging the exception with OOB telemetry.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`SnowflakeSQLLoggedException(SFBaseSession session, ErrorCode errorCode, Object... params)`
`SnowflakeSQLLoggedException(SFBaseSession session, ErrorCode errorCode, Throwable ex, Object... params)`
`SnowflakeSQLLoggedException(SFBaseSession session, int vendorCode, String SQLState)`
`SnowflakeSQLLoggedException(SFBaseSession session, int vendorCode, String SQLState, Object... params)`
`SnowflakeSQLLoggedException(SFBaseSession session, SFException e)`
`SnowflakeSQLLoggedException(SFBaseSession session, String reason)`
`SnowflakeSQLLoggedException(SFBaseSession session, String SQLState, int vendorCode, Throwable ex, Object... params)`
`SnowflakeSQLLoggedException(SFBaseSession session, String SQLState, String reason)`
`SnowflakeSQLLoggedException(SFBaseSession session, String reason, String SQLState, int vendorCode, String queryId)`

### Method Summary

All Methods Static Methods Concrete Methods
`static void` `sendTelemetryData(String queryId, String SQLState, int vendorCode, SFBaseSession session, SQLException ex)` Function to construct log data based on possible exception inputs and send data through in-band telemetry, or oob if in-band does not work

### Methods inherited from class net.snowflake.client.jdbc.SnowflakeSQLException

`getElapsedSeconds, getQueryId, getRetryCount, issocketTimeoutNoBackoff`

### Methods inherited from class java.sql.SQLException

`getErrorCode, getNextException, getSQLState, iterator, setNextException`

### Methods inherited from class java.lang.Throwable

`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Constructor Detail

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       String reason,
                                       String SQLState,
                                       int vendorCode,
                                       String queryId)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       int vendorCode,
                                       String SQLState)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       String SQLState,
                                       String reason)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       int vendorCode,
                                       String SQLState,
                                       Object... params)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       ErrorCode errorCode,
                                       Throwable ex,
                                       Object... params)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       String SQLState,
                                       int vendorCode,
                                       Throwable ex,
                                       Object... params)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       ErrorCode errorCode,
                                       Object... params)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       SFException e)

#### SnowflakeSQLLoggedException

    public SnowflakeSQLLoggedException(SFBaseSession session,
                                       String reason)

### Method Detail

#### sendTelemetryData

    public static void sendTelemetryData(String queryId,
                                         String SQLState,
                                         int vendorCode,
                                         SFBaseSession session,
                                         SQLException ex)

Function to construct log data based on possible exception inputs and send data through in-band telemetry, or oob if in-band does not work

Parameters:
  `queryId` - query ID if exists
  `SQLState` - SQLState
  `vendorCode` - vendor code
  `session` - session object, which is needed to send in-band telemetry but not oob. Might be null, in which case oob is used.
  `ex` - Exception object