pureQuery는 JDBC를 기반으로 하지만 점검된 예외 처리에
애플리케이션을 필요로 하지 않습니다. pureQuery 메소드에 대한 호출을
try 블록으로 묶을 필요가 없습니다.
가능한 경우, pureQuery는 기본 JDBC 드라이버에서 SQLException 및 기타 점검된 예외를
포착합니다. 그런 다음 pureQuery는
발생한 예외를 랩핑하는 런타임 예외를 발생합니다.
pureQuery 런타임 예외는 다음과 같습니다.
- DataRuntimeException
- 이 예외는 java.lang.RuntimeException을 확장하여
getMessage() 및 getCause() 메소드를 상속합니다.
- 랩핑된 SQLException에 대한 정보를 찾으려면
다음 메소드를 사용합니다.
- public Integer getErrorCode()
- DataRuntimeException이 SQLException을 랩핑하는 경우 이 메소드는
SQLCODE를 리턴합니다.
- DataRuntimeException이 SQLException을 랩핑하지 않는 경우 이 메소드는
-99999 값을 리턴합니다.
- public String getSQLSTATE()
- DataRuntimeException이 SQLException을 랩핑하는 경우 이 메소드는
SQLSTATE를 리턴합니다.
- DataRuntimeException이 SQLException을 랩핑하지 않는 경우 이 메소드는
"FFFFF" 값을 리턴합니다.
- public SqlErrorType getErrorType()
- DataRuntimeException이 SQLException을 랩핑하는지 여부에 따라,
이 메소드는 다음 값 중 하나를 리턴합니다.
- AUTHORIZATION_ERROR
- CARDINALITY_VIOLATION
- CONNECTION_ERROR
- CONSTRAINT_VIOLATION
- DUPLICATE_ROW_VIOLATION
- FEATURE_NOT_SUPPORTED
- FUNCTION_ERROR
- INVALID_CURSOR_STATE
- JDBC_DRIVER_ERROR
- LIMIT_EXCEEDED
- RESOURCE_UNAVAILABLE
- STATIC_PACKAGE_NOT_FOUND
- SYNTAX_ERROR
- TIMEOUT_OR_DEADLOCK_NO_ROLLBACK
- TIMEOUT_OR_DEADLOCK_WITH_ROLLBACK
- UNCATEGORIZED_ERROR
애플리케이션이
SQLException에서 복구할 수 있는지 여부를 보려면 부울 isTransient() 메소드를 사용하십시오. 이
메소드는 SQLException이 SQLTransientException의 인스턴스인 경우
true를 리턴합니다. SQLTransientException은 JDBC 4.0에서 도입된
세 개의 SQLException 서브클래스 중 하나입니다.
- UpdateManyException
- 이 예외는 DataRuntimeException을 확장합니다. 이는 일괄처리 갱신 결과를 표시하는 getUpdateCounts() 메소드를
제공합니다.