org.springframework.jdbc.support

## Interface SQLExceptionTranslator

All Known Implementing Classes:
  AbstractFallbackSQLExceptionTranslator, SQLErrorCodeSQLExceptionTranslator, SQLExceptionSubclassTranslator, SQLStateSQLExceptionTranslator

    public interface SQLExceptionTranslator

Strategy interface for translating between `SQLExceptions` and Spring's data access strategy-agnostic `DataAccessException` hierarchy.

Implementations can be generic (for example, using `SQLState` codes for JDBC) or wholly proprietary (for example, using Oracle error codes) for greater precision.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `DataAccessException`

### Method Summary

Methods
`DataAccessException` `translate(String task, String sql, SQLException ex)` Translate the given `SQLException` into a generic `DataAccessException`.

### Method Detail

#### translate

    DataAccessException translate(String task,
                                String sql,
                                SQLException ex)

Translate the given `SQLException` into a generic `DataAccessException`.

The returned DataAccessException is supposed to contain the original `SQLException` as root cause. However, client code may not generally rely on this due to DataAccessExceptions possibly being caused by other resource APIs as well. That said, a `getRootCause() instanceof SQLException` check (and subsequent cast) is considered reliable when expecting JDBC-based access to have happened.

Parameters:
  `task` - readable text describing the task being attempted
  `sql` - SQL query or update that caused the problem (may be `null`)
  `ex` - the offending `SQLException`
Returns:
  the DataAccessException, wrapping the `SQLException`
See Also:
  `NestedRuntimeException.getRootCause()`