내 이전 블로그 글에서 루비, 파이썬, C 및 C++와 같은 libCouchbase 클라이언트에서 발생하는 오류를 살펴봤습니다. 이 블로그에서는 Couchbase용 Java 클라이언트 라이브러리에 초점을 맞출 것입니다.
Java 클라이언트 라이브러리에는 오류가 아닌 예외가 있습니다. 반환 유형과 애플리케이션의 상태에 따라 Java 클라이언트에서 다양한 예외가 발생할 수 있습니다. 일반적으로 이러한 예외는 @throws 어노테이션을 통해 표시되거나 IDE에서 예외를 잡아야 한다고 알려줍니다.
다음은 Java 라이브러리를 사용할 때 발생할 수 있는 몇 가지 예외 사항입니다:
모든 비동기 연산은 퓨처를 반환하며, 결과를 차단할 때까지 예외를 발생시키지 않습니다. 예외를 트래핑하는 것 외에도 퓨처의 상태를 검사하고 getMessage() API를 사용하여 실제 메시지 텍스트를 가져옵니다.
동기식 API의 경우 클라이언트 라이브러리는 비동기 메서드에 대한 래퍼로 구현됩니다. 다음은 동기식 자바 API에서 발생하는 가장 일반적인 예외입니다:
1. 타임아웃 예외 - 이는 미래를 기다리는 시간이 예상보다 오래 걸렸음을 의미합니다. 예를 들어 기본 시간 초과 값과 함께 get()이 사용되어 시간 초과가 만료되면 이 예외가 발생합니다. 사용자 지정 시간 제한이 있는 get()이 사용되어 시간 제한이 만료되는 경우에도 이 예외가 발생합니다.
2. 취소 예외 - 이는 '비행 중'에 작업이 취소되었음을 의미합니다. 예를 들어 응답 없이 네트워크를 통해 전송된 요청을 말합니다. 특히 노드에 장애가 발생했을 때 이런 일이 발생할 수 있습니다. 현재 진행 중인 모든 작업이 취소됩니다.
3. 중단된 예외- 이는 미래를 차단하는 동안 중단이 발생했음을 의미합니다.
애플리케이션에서 Java로 뷰를 사용하는 경우 다음과 같은 예외가 표시될 수 있습니다:
1. InvalidViewException - 이는 잘못된 뷰 이름 또는 디자인 문서가 지정되었음을 의미합니다. 보기가 개발 단계에 있고 프로덕션에 배포되지 않았거나 보기가 프로덕션에 있고 앱이 개발 보기를 참조하는 경우에도 이 예외가 발생합니다.
이 예외를 처리하려면 뷰를 호출할 때 올바른 뷰 이름 매개 변수를 사용하고 이 뷰가 프로덕션에 배포되었는지 확인하세요.
API를 사용하여 카우치베이스에서 데이터가 유지되는지 확인하는 경우 주의해야 할 몇 가지 예외가 더 있습니다:
1. 관찰된 예외 - 이는 API 호출에 일반적인 문제가 발생했음을 의미하며 자세한 내용은 상태 메시지에서 확인할 수 있습니다.
2. 관찰된 시간 초과 예외 - 이는 API 호출 시간이 초과되었음을 의미하며 다시 시도해야 합니다.
3. 관찰된 수정 예외 - 이는 그 사이에 문서가 수정되었기 때문에 API 호출이 실패했음을 의미합니다. 이는 경쟁 조건을 나타냅니다.
마지막으로 Java API로 애플리케이션을 부트스트랩하는 동안 다음과 같은 예외가 발생할 수 있습니다:
1. 구성 파싱 예외 - 이는 현재 구성을 파싱할 수 없음을 의미합니다. 구성 파일의 정확성을 확인한 후 다시 시도해야 합니다.
호스트에 연결할 수 없는 경우 다른 네트워크 예외가 표시될 수도 있습니다.
Couchbase Java 클라이언트를 사용하여 애플리케이션을 구축해 보세요. 궁금한 점이 있으면 주저하지 마시고 포럼.