Skip to content

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());
    }
}