Aşağıdaki durum kodları gRPC yanıtlarında döndürülebilir. Bu, bu sitede belgelenen gRPC'nin tüm sürümleri için geçerlidir.
Kod | Durum | Notlar |
---|---|---|
0 | OK |
Success tarihinde geri dönecek |
1 | CANCELLED |
İşlem genellikle arayan tarafından iptal edildi. |
2 | UNKNOWN |
Örneğin, başka bir adres alanından alınan bir durum değeri bu adres alanında bilinmeyen bir hata alanına aitse bu hata döndürülebilir. Ayrıca, API'ler tarafından oluşturulan ve yeterli hata bilgisi döndürmeyen hatalar da bu hataya dönüştürülebilir. |
3 | INVALID_ARGUMENT |
İstemci, geçersiz bir bağımsız değişken belirtti. |
4 | DEADLINE_EXCEEDED |
Son tarih, işlem tamamlanmadan önce doldu. Sistemin durumunu değiştiren işlemler başarıyla tamamlansa bile bu hata döndürülebilir. Örneğin, son tarihin dolmasına yetecek kadar gecikmeli bir yanıt alan sunucu. |
5 | NOT_FOUND |
İstenen bazı varlıklar bulunamadı. |
6 | ALREADY_EXISTS |
Bir istemcinin oluşturmaya çalıştığı varlık zaten mevcut. |
7 | PERMISSION_DENIED |
Arayan kullanıcının belirtilen işlemi gerçekleştirme izni yok. Bir kaynağın tükenmesinden kaynaklanan retler için PERMISSION_DENIED kullanmayın; bu hatalar için RESOURCE_EXHAUSTED kullanın. Arayan tanımlanamıyorsa PERMISSION_DENIED kullanmayın (bu tür hatalar için bunun yerine UNAUTHENTICATED kullanın). PERMISSION_DENIED hata kodu alması, isteğin geçerli olduğu veya istenen öğenin var olduğu ya da diğer ön koşulları karşıladığı anlamına gelmez. |
8 | RESOURCE_EXHAUSTED |
Kullanıcı başına kota gibi bir kaynak tükendi veya dosya sisteminin tamamında yer kalmadı. |
9 | FAILED_PRECONDITION |
Sistem, işlemin yürütülmesi için gereken durumda olmadığından işlem reddedildi. Örneğin, silinecek dizin boş değilse veya rmdir işlemi dizin olmayan bir yere uygulanırsa. |
10 | ABORTED |
İşlem, genellikle sıralayıcı kontrolü hatası veya işlem iptal edilmesi gibi bir eşzamanlılık sorunu nedeniyle iptal edildi. |
11 | OUT_OF_RANGE |
İşlem, geçerli aralık dışında gerçekleştirilmeye çalışıldı. |
12 | UNIMPLEMENTED |
İşlem bu hizmette uygulanmıyor veya desteklenmiyor/etkinleştirilmiyor. |
13 | INTERNAL |
Dahili hatalar. Bu, temel sistem tarafından beklenen bazı değişmez özelliklerin bozulduğu anlamına gelir. Bu hata kodu ciddi hatalar için ayrılmıştır. |
14 | UNAVAILABLE |
Hizmet şu anda kullanılamıyor. Bu büyük olasılıkla, geri çekilmeyle yeniden denendiğinde düzeltilebilecek geçici bir durumdur. |
15 | DATA_LOSS |
Kurtarılamaz veri kaybı veya bozulması. |
16 | UNAUTHENTICATED |
İstekte işlemle ilgili geçerli kimlik doğrulama bilgileri bulunmuyor. |
Bazen birden fazla hata kodu geçerli olabilir. Hizmetler, geçerli olan en belirgin hata kodunu döndürmelidir. Örneğin, her iki kod da geçerliyse OUT_OF_RANGE
yerine FAILED_PRECONDITION
'ü tercih edin.
Benzer şekilde, FAILED_PRECONDITION
yerine NOT_FOUND
veya ALREADY_EXISTS
'u tercih edin.
FAILED_PRECONDITION, ABORTED ve UNAVAILABLE
Aşağıda, FAILED_PRECONDITION
, ABORTED
ve UNAVAILABLE
arasında karar vermenize yardımcı olabilecek bir litmus testi verilmiştir:
- İstemci yalnızca başarısız aramayı yeniden deneyebiliyorsa
UNAVAILABLE
değerini kullanın. - İstemcinin daha yüksek bir düzeyde yeniden denemesi gerekiyorsa (ör. istemci tarafından belirtilen bir test ve ayar işlemi başarısız olduğunda, bu durum istemcinin bir okuma-değiştirme-yazma sırasını yeniden başlatması gerektiğini gösterir)
ABORTED
değerini kullanın. - Sistem durumu açıkça düzeltilene kadar istemcinin yeniden denememesi gerekiyorsa
FAILED_PRECONDITION
değerini kullanın. Örneğin, bir "rmdir" işlemi, dizin boş olmadığı için başarısız olursa istemci, dizinden dosyalar silinmediği sürece yeniden deneme yapmaması gerektiğindenFAILED_PRECONDITION
döndürülmesi en iyi seçenektir.
INVALID_ARGUMENT, FAILED_PRECONDITION ve OUT_OF_RANGE
Aşağıda, INVALID_ARGUMENT
, FAILED_PRECONDITION
ve OUT_OF_RANGE
arasında karar vermenize yardımcı olabilecek bir litmus testi verilmiştir:
- Sistem durumuna bakılmaksızın bağımsız değişkenler sorunluysa
INVALID_ARGUMENT
değerini kullanın. Örneğin: Yanlış biçimlendirilmiş bir URL - Bir değer, sistemin durumu nedeniyle aralık dışındaysa
OUT_OF_RANGE
değerini kullanın. Örneğin, start_datestart_date_restrict
tarihinden öncedir. - Değer, sistemin durumu nedeniyle geçersizse ancak
OUT_OF_RANGE
değeri değilseFAILED_PRECONDITION
kullanın.