의 오류 처리 AWS SDK for Java 2.x - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

의 오류 처리 AWS SDK for Java 2.x

에서 예외가 AWS SDK for Java 2.x 발생하는 방법과 시기를 이해하는 것은 SDK를 사용하여 고품질 애플리케이션을 구축하는 데 중요합니다. 다음 단원에서는 SDK에서 발생하는 다양한 예외의 경우와 이러한 예외를 적절히 처리하는 방법에 대해 설명합니다.

확인되지 않은 예외가 발생하는 이유

는 다음과 같은 이유로 확인된 예외 대신 런타임(또는 확인되지 않은) 예외를 AWS SDK for Java 사용합니다.

  • 개발자가 중요하지 않은 예외 경우를 강제로 처리하지 않고 (또한 해당 코드를 상세 표시 모드로 설정하지 않고) 처리하고자 하는 오류에 대해서만 세부적으로 제어할 수 있도록 하기 위해

  • 대규모 애플리케이션에서 확인된 예외 고유의 확장성 문제를 방지하기 위해

일반적으로 확인된 예외는 소규모 애플리케이션에서 잘 작동하는 편이지만, 애플리케이션이 확장되고 복잡해짐에 따라 문제가 될 수도 있습니다.

AwsServiceException(및 하위 클래스)

AwsServiceException은 사용 시 발생할 수 있는 가장 일반적인 예외입니다 AWS SDK for Java.는 보다 일반적인 SdkServiceException의 하위 클래스AwsServiceException입니다. AwsServiceExceptions는의 오류 응답을 나타냅니다 AWS 서비스. 예를 들어 존재하지 않는 Amazon EC2 인스턴스를 종료하려고 하면 Amazon EC2 가 오류 응답을 반환하고 해당 오류 응답의 모든 세부 정보가 AwsServiceException 발생한에 포함됩니다.

가 발생하면 요청이 로 성공적으로 전송되었지만 성공적으로 처리할 AWS 서비스 수 없다는 것을 AwsServiceException알 수 있습니다. 이는 요청의 파라미터 오류 또는 서비스 측의 문제로 인해 발생할 수 있습니다.

AwsServiceException은 다음과 같은 정보를 제공합니다.

  • 반환된 HTTP 상태 코드

  • 반환된 AWS 오류 코드

  • AWSerrorDetails 클래스에 있는 서비스의 자세한 오류 메시지

  • AWS 실패한 요청에 대한 요청 ID

경우에 따라서는 개발자가 catch 블록을 통해 오류 경우 처리를 세부적으로 제어할 수 있도록 하기 위해 AwsServiceException의 하위 클래스가 발생하기도 합니다. AwsServiceException에 대한 Java SDK API 참조에는 많은 수의 AwsServiceException 서브클래스가 표시됩니다. 서브클래스 링크를 사용하여 서비스에서 발생하는 세분화된 예외를 자세히 확인할 수 있습니다.

예를 들어 SDK API 참조에 대한 다음 링크는 몇 가지 일반적인 AWS 서비스에 대한 예외 계층 구조를 보여줍니다. 각 페이지에 표시된 서브클래스 목록은 코드가 포착할 수 있는 특정 예외를 보여줍니다.

예외에 대해 자세히 알아보려면 AwsErrorDetails 객체의 errorCode를 살펴보세요. 이 errorCode 값을 사용하여 서비스 가이드 API에서 정보를 조회할 수 있습니다. 예를 들어 S3ExceptionInvalidRequest 발견되었는데 AwsErrorDetails#errorCode() 값이 인 경우 Amazon S3 API 참조의 오류 코드 목록을 사용하여 자세한 내용을 확인하세요.

SdkClientException

SdkClientException은 요청을에 보내려고 하거나 응답을 구문 분석하려고 할 AWS 때 Java 클라이언트 코드 내에서 문제가 발생했음을 나타냅니다 AWS. SdkClientException는 일반적으로 보다 심각SdkServiceException하며 클라이언트가 서비스를 호출하지 못하게 하는 주요 문제를 나타냅니다 AWS . 예를 들어 클라이언트 중 하나에서 작업을 호출하려고 할 때 네트워크 연결을 사용할 수 없는 SdkClientException 경우에서이 AWS SDK for Java 발생합니다.

예외 및 재시도 동작

SDK for Java는 여러 클라이언트 측 예외 및 AWS 서비스 응답에서 수신하는 HTTP 상태 코드에 대한 요청을 재시도합니다. 이러한 오류는 서비스 클라이언트가 기본적으로 RetryMode 사용하는 레거시의 일부로 처리됩니다. 의 Java API 참조에서는 모드를 구성할 수 있는 다양한 방법을 RetryMode 설명합니다.

자동 재시도를 트리거하는 예외 및 HTTP 상태 코드를 사용자 정의하려면 RetryOnExceptionsConditionRetryOnStatusCodeCondition 인스턴스를 추가하는 RetryPolicy와 함께 서비스 클라이언트를 구성하세요.