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 di indirizzi appartiene a uno spazio di errore non noto in questo spazio degli indirizzi. Anche gli errori generati dalle API che non restituiscono informazioni sull'errore sufficienti potrebbero essere convertiti in questo errore. |
3 | INVALID_ARGUMENT |
Il client ha specificato un argomento non valido. |
4 | DEADLINE_EXCEEDED |
Il termine è scaduto prima del completamento dell'operazione. Per le operazioni che cambiano lo stato del sistema, questo errore può essere restituito anche se l'operazione viene completata correttamente. Ad esempio, una risposta riuscita da un server che è stato ritardato abbastanza a 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 usare PERMISSION_DENIED per i rifiuti causati dall'esaurimento di alcune risorse; usa RESOURCE_EXHAUSTED invece per questi errori. Non usare PERMISSION_DENIED se non è possibile identificare il chiamante (utilizza invece UNAUTHENTICATED per questi errori). Ricevere un codice di errore PERMISSION_DENIED non implica che la richiesta sia valida o che l'entità richiesta esista o soddisfi altre condizioni preliminari. |
8 | RESOURCE_EXHAUSTED |
Alcune risorse sono esaurite, forse una quota per utente o forse l'intero file system ha esaurito lo spazio. |
9 | FAILED_PRECONDITION |
L'operazione è stata rifiutata perché il sistema non si trova nello stato richiesto per l'esecuzione. Ad esempio, la directory da eliminare non è vuota oppure viene applicata un'operazione rmdir a una directory non directory. |
10 | ABORTED |
L'operazione è stata interrotta, generalmente a causa di un problema di contemporaneità, come un errore del controllo della 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/abilitata in questo servizio. |
13 | INTERNAL |
Errori interni. Ciò significa che alcune invarianti previste dal sistema sottostante sono state interrotte. Questo codice di errore è riservato a errori gravi. |
14 | UNAVAILABLE |
Il servizio non è al momento disponibile. Si tratta molto probabilmente di una condizione temporanea che può essere corretta se si ritenta con un backoff. |
15 | DATA_LOSS |
Perdita o danneggiamento di dati non recuperabili. |
16 | UNAUTHENTICATED |
La richiesta non dispone di credenziali di autenticazione valide per l'operazione. |
A volte potrebbero essere applicati più codici di errore. I servizi dovrebbero restituire il codice di errore più specifico applicabile. Ad esempio, preferisci OUT_OF_RANGE
rispetto a FAILED_PRECONDITION
se si applicano entrambi i codici.
Allo stesso modo, preferisci NOT_FOUND
o ALREADY_EXISTS
rispetto a FAILED_PRECONDITION
.
FAILED_PRECONDIZIONE contro ABORTED e UNAVAILABLE
Di seguito è riportata una cartina di tornasole che può aiutarti a scegliere tra FAILED_PRECONDITION
, ABORTED
e UNAVAILABLE
:
- Utilizza
UNAVAILABLE
se il client può riprovare solo la chiamata non riuscita. - Utilizza
ABORTED
se il client deve riprovare a un livello superiore, ad esempio quando un test e un set specificato dal client ha esito negativo, 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 viene risolto esplicitamente. Ad esempio, se un comando "rmdir" non riesce perché la directory non è vuota, è meglio restituireFAILED_PRECONDITION
perché il client non dovrebbe riprovare a meno che i file non vengano eliminati dalla directory.
INVALID_ARGUMENT e FAILED_PRECONDIZIONE rispetto a OUT_OF_RANGE
Di seguito è riportata una cartina di tornasole che può aiutarti a scegliere tra INVALID_ARGUMENT
, FAILED_PRECONDITION
e OUT_OF_RANGE
:
- Utilizza
INVALID_ARGUMENT
se gli argomenti sono problematici a prescindere dallo stato del sistema. Ad esempio: un URL non corretto - Utilizza
OUT_OF_RANGE
se un valore non rientra nell'intervallo a causa dello stato del sistema. Ad esempio, start_date è 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
.