I seguenti codici di stato possono essere restituiti nelle risposte gRPC. Questo vale per tutte le versioni di gRPC documentate su questo sito.
Codice | Stato | Note |
---|---|---|
0 | OK |
Ritorno il giorno Success |
1 | CANCELLED |
L'operazione è stata annullata, in genere dal chiamante. |
2 | UNKNOWN |
Ad esempio, questo errore può essere restituito quando un valore di stato ricevuto da un altro spazio degli indirizzi appartiene a uno spazio di errore non noto in questo spazio degli indirizzi. Anche gli errori generati da API che non restituiscono informazioni sufficienti sugli errori possono essere convertiti in questo errore. |
3 | INVALID_ARGUMENT |
Il client ha specificato un argomento non valido. |
4 | DEADLINE_EXCEEDED |
La scadenza è scaduta prima del completamento dell'operazione. Per le operazioni che modificano lo stato del sistema, questo errore può essere restituito anche se l'operazione è stata completata correttamente. Ad esempio, una risposta corretta da un server che ha subito un ritardo sufficientemente lungo da far scadere la scadenza. |
5 | NOT_FOUND |
Alcune entità richieste non sono state trovate. |
6 | ALREADY_EXISTS |
L'entità che un client ha tentato di creare esiste già. |
7 | PERMISSION_DENIED |
Il chiamante non dispone dell'autorizzazione per eseguire l'operazione specificata. Non utilizzare PERMISSION_DENIED per i rifiuti causati dall'esaurimento di una risorsa; utilizza invece RESOURCE_EXHAUSTED per questi errori. Non utilizzare PERMISSION_DENIED se non è possibile identificare l'utente che ha effettuato la chiamata (per questi errori, utilizza UNAUTHENTICATED ). La ricezione di un codice di errore PERMISSION_DENIED non implica che la richiesta sia valida o che l'entità richiesta esista o soddisfi altre pre-condizioni. |
8 | RESOURCE_EXHAUSTED |
Una risorsa è stata esaurita, ad esempio una quota per utente, oppure l'intero file system non dispone di spazio. |
9 | FAILED_PRECONDITION |
L'operazione è stata rifiutata perché il sistema non è nello stato richiesto per l'esecuzione dell'operazione. Ad esempio, la directory da eliminare non è vuota o un'operazione rmdir viene applicata a una non directory. |
10 | ABORTED |
L'operazione è stata interrotta, in genere a causa di un problema di concorrenza, ad esempio un errore di controllo del sequenziatore o l'interruzione della transazione. |
11 | OUT_OF_RANGE |
L'operazione è stata tentata oltre l'intervallo valido. |
12 | UNIMPLEMENTED |
L'operazione non è implementata o non è supportata/attivata in questo servizio. |
13 | INTERNAL |
Errori interni. Ciò significa che alcune invarianti previste dal sistema sottostante sono state violate. Questo codice di errore è riservato agli errori gravi. |
14 | UNAVAILABLE |
Il servizio non è al momento disponibile. Molto probabilmente si tratta di una condizione temporanea che può essere corretta se si ritenta con un backoff. |
15 | DATA_LOSS |
Perdita di dati non recuperabili o danneggiamento dei dati. |
16 | UNAUTHENTICATED |
La richiesta non ha credenziali di autenticazione valide per l'operazione. |
A volte possono essere applicati più codici di errore. I servizi devono restituire
il codice di errore più specifico applicabile. Ad esempio, preferisci
OUT_OF_RANGE
a FAILED_PRECONDITION
se si applicano entrambi i codici.
Analogamente, preferisci NOT_FOUND
o ALREADY_EXISTS
rispetto a FAILED_PRECONDITION
.
FAILED_PRECONDITION, ABORTED e UNAVAILABLE
Di seguito è riportato un test di verifica che può aiutarti a scegliere tra
FAILED_PRECONDITION
, ABORTED
e UNAVAILABLE
:
- Utilizza
UNAVAILABLE
se il cliente può riprovare solo la chiamata non riuscita. - Utilizza
ABORTED
se il client deve riprovare a un livello superiore, ad esempio quando un test-and-set specificato dal client non va a buon fine, il che indica che il client deve riavviare una sequenza di lettura, modifica e scrittura. - Utilizza
FAILED_PRECONDITION
se il client non deve riprovare finché lo stato del sistema non è stato corretto esplicitamente. Ad esempio, se un comando "rmdir" non va a buon fine perché la directory non è vuota, è meglio restituireFAILED_PRECONDITION
perché il client non deve riprovare a meno che i file non vengano eliminati dalla directory.
INVALID_ARGUMENT, FAILED_PRECONDITION e OUT_OF_RANGE
Di seguito è riportato un test di verifica che può aiutarti a scegliere tra
INVALID_ARGUMENT
, FAILED_PRECONDITION
e OUT_OF_RANGE
:
- Utilizza
INVALID_ARGUMENT
se gli argomenti sono problematici indipendentemente dall'estado del sistema. Ad esempio, un URL con formato non valido - Utilizza
OUT_OF_RANGE
se un valore è fuori intervallo a causa dello stato del sistema. Ad esempio, la data di inizio è precedente al giornostart_date_restrict
. - Utilizza
FAILED_PRECONDITION
se il valore non è valido a causa dello stato del sistema, ma non è un valoreOUT_OF_RANGE
.