9. 예외 처리#
모든 예외는 AltibaseRuntimeException을 상속하며, 에러 코드를 통해 분류할 수 있다.
예외 계층#
| 예외 클래스 | 에러 코드 | 발생 상황 |
|---|---|---|
| AltibaseConnectionException | CONNECTION_ERROR | JDBC 연결 실패 |
| AltibaseCollectionException | COLLECTION_ERROR | 컬렉션 작업 실패 |
| AltibaseQueryException | QUERY_ERROR | 쿼리 실행 실패 |
| AltibaseSchemaException | SCHEMA_ERROR | 스키마 검증 실패 |
| AltibaseTransactionException | TRANSACTION_ERROR | 트랜잭션 실패 |
예제: 예외 처리#
try (AltibaseDatabase db = AltibaseClient.getDatabase(url)) {
AltibaseCollection users = db.getCollection("users");
users.insertOne(doc);
} catch (AltibaseConnectionException e) {
System.err.println("연결 오류: " + e.getMessage());
// 재연결 로직
} catch (AltibaseCollectionException e) {
System.err.println("컬렉션 오류: " + e.getMessage());
// 컬렉션이 없는 경우 생성
} catch (AltibaseQueryException e) {
System.err.println("쿼리 오류: " + e.getMessage());
// 잘못된 필터 수정
} catch (AltibaseRuntimeException e) {
System.err.println("일반 오류 [" + e.getErrorCode() + "]: " + e.getMessage());
}
예제: 에러 코드로 분기#
try {
db.createCollection("users");
} catch (AltibaseRuntimeException e) {
switch (e.getErrorCode()) {
case "COLLECTION_ERROR":
System.err.println("컬렉션 생성 실패");
break;
case "SCHEMA_ERROR":
System.err.println("스키마 오류 - 옵션 확인 필요");
break;
default:
System.err.println("알 수 없는 오류: " + e.getErrorCode());
}
}