본문 바로가기

Programing/OpenSource

[Spring] org.springframework.dao 예외 클래스

org.springframework.dao 패키지 하위의 예외 클래스를 리스트업 해보았다.

5.2.4 기준이로 일부는 빠져있을 수 있다.

 

가장 상위가 되는 예외는 DataAccessException 이다.

DataAccessException 아래 3가지

아래에는 크게 3가지 카테고리로 나눌 수 있다.

  1. NonTransientDataAccessException: Root of the hierarchy of data access exceptions that are considered non-transient where a retry of the same operation would fail unless the cause of the Exception is corrected.
  2. RecoverableDataAccessException: Data access exception thrown when a previously failed operation might be able to succeed if the application performs some recovery steps and retries the entire transaction or in the case of a distributed transaction, the transaction branch. At a minimum, the recovery operation must include closing the current connection and getting a new connection.
  3. TransientDataAccessException: Root of the hierarchy of data access exceptions that are considered transient where a previously failed operation might be able to succeed when the operation is retried without any intervention by application-level functionality.

TransientDataAccessException 는 아래와 같은 계층 구조를 가진다.

TransientDataAccessException 계층

NonTransientDataAccessException 는 아래와 같은 계층 구조를 가진다. (꽤 많다!)

NonTransientDataAccessException

PK 같이 Unique해야 하는 값이 입력되었을 경우 발생하는 DuplicateKeyException 도 NonTransientDataAccessException 아래에 속한다.

Not Null 컬럼이 null일 경우에는 DataIntegrityViolationException 가 발생한다.