pureQuery 코드의 예외 처리

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() 메소드를 제공합니다.

피드백