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)
AwsServiceExceptionAwsServiceException
è una sottoclasse di quella più generale SdkServiceExceptionAwsServiceException
s 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 AwsErrorDetails
classe -
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'errorCode
oggetto. AwsErrorDetailserrorCode
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
SdkClientExceptionSdkClientException
è 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 clientRetryMode
. 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
.