Gestione delle eccezioni per AWS SDK for Java 2.x - AWS SDK for Java 2.x

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle eccezioni per AWS SDK for Java 2.x

Comprendere come e quando AWS SDK for Java 2.x genera eccezioni è importante per la creazione di applicazioni di alta qualità utilizzando l'SDK. Nelle seguenti sezioni vengono descritti i diversi casi di eccezioni che vengono generate dall'SDK e come gestirle in modo appropriato.

Perché le eccezioni non controllate?

AWS SDK for Java utilizza eccezioni runtime (o non controllate) anziché eccezioni controllate per i seguenti motivi:

  • Per consentire agli sviluppatori di controllare ogni dettaglio degli errori che desiderano gestire senza costringerli a gestire casi eccezionali che non destino preoccupazione (rendendo il codice eccessivamente dettagliato)

  • Per prevenire problemi di scalabilità intrinseca con eccezioni controllate in applicazioni di grandi dimensioni

In generale, le eccezioni controllate funzionano bene su scale ridotte, ma possono diventare problematiche all'aumentare delle dimensioni e della complessità delle applicazioni.

AwsServiceException (e sottoclassi)

AwsServiceExceptionè l'eccezione più comune che si verificherà quando si utilizza. AWS SDK for Java AwsServiceExceptionè una sottoclasse di quella più generale SdkServiceException. AwsServiceExceptions rappresenta una risposta di errore da unServizio AWS. Ad esempio, se provi a terminare un'Amazon EC2istanza che non esiste, Amazon EC2 restituirà una risposta di errore e tutti i dettagli di tale risposta di errore verranno inclusi nella AwsServiceException risposta generata.

Quando incontri unAwsServiceException, sai che la tua richiesta è stata inviata con successo a Servizio AWS ma non può essere elaborata correttamente. Questo può essere dovuto a errori nei parametri della richiesta o a errori sul lato servizio.

AwsServiceException fornisce informazioni quali:

  • Codice di stato HTTP restituito

  • Codice AWS di errore restituito

  • Messaggio di errore dettagliato del servizio della AwsErrorDetailsclasse

  • AWSID della richiesta non riuscita

Nella maggior parte dei casi, AwsServiceException viene generata una sottoclasse specifica del servizio di per consentire agli sviluppatori un controllo granulare sulla gestione dei casi di errore tramite i block catch. Il riferimento all'API Java SDK per visualizzare il gran numero di sottoclassi. AwsServiceExceptionAwsServiceException Utilizza i collegamenti alle sottoclassi per visualizzare in dettaglio le eccezioni granulari generate da un servizio.

Ad esempio, i seguenti collegamenti al riferimento dell'API SDK mostrano le gerarchie delle eccezioni per alcune comuni. Servizi AWS L'elenco delle sottoclassi mostrato in ogni pagina mostra le eccezioni specifiche che il codice può catturare.

Per ulteriori informazioni su un'eccezione, ispeziona l'errorCodeoggetto. AwsErrorDetails È possibile utilizzare il errorCode valore per cercare informazioni nell'API della guida ai servizi. Ad esempio, se S3Exception viene rilevato un e il AwsErrorDetails#errorCode() valore èInvalidRequest, utilizza l'elenco dei codici di errore nell'Amazon S3 API Reference per visualizzare ulteriori dettagli.

SdkClientException

SdkClientExceptionindica che si è verificato un problema all'interno del codice client Java, durante il tentativo di inviare una richiesta a AWS o durante il tentativo di analizzare una risposta da. AWS Un SdkClientException è generalmente più grave di un SdkServiceException e indica un problema importante che impedisce al client di effettuare chiamate di servizio ai AWS servizi. Ad esempio, AWS SDK for Java genera una SdkClientException se una connessione di rete non è disponibile quando si cerca di chiamare un'operazione su uno dei client.

Eccezioni e comportamenti relativi ai tentativi

L'SDK for Java ritenta le richieste per diverse eccezioni lato client e per i codici di stato HTTP che riceve dalle risposte. Servizio AWS Questi errori vengono gestiti come parte dell'eredità utilizzata dai client di servizio per impostazione predefinitaRetryMode. Il riferimento all'API Java per RetryMode descrive i vari modi in cui è possibile configurare la modalità.

Per personalizzare le eccezioni e i codici di stato HTTP che attivano i nuovi tentativi automatici, configura il client di servizio con un programma RetryPolicy che aggiunge RetryOnExceptionsCondition istanzeRetryOnStatusCodeCondition.