Aşağıdaki durum kodları gRPC yanıtlarında döndürülebilir. Bu durum, bu sitede belgelenen tüm gRPC sürümleri için geçerlidir.
Kod | Durum | Notlar |
---|---|---|
0 | OK |
Success tarihinde dönün |
1 | CANCELLED |
İşlem, genellikle arayan tarafından iptal edildi. |
2 | UNKNOWN |
Örneğin, başka bir adres alanından alınan Durum değeri bu adres alanında bilinmeyen bir hata alanına ait olduğunda bu hata döndürülebilir. Ayrıca, yeterli hata bilgisi döndürmeyen API'lerin oluşturduğu 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 |
İşlem tamamlanmadan önce son tarih geçerliliğini yitirdi. Sistemin durumunu değiştiren işlemlerde, işlem başarıyla tamamlanmış olsa bile bu hata döndürülebilir. Örneğin, son tarihin sona ereceği kadar uzun süre gecikmiş bir sunucudan gelen başarılı yanıt. |
5 | NOT_FOUND |
İstenen bazı varlıklar bulunamadı. |
6 | ALREADY_EXISTS |
Bir istemcinin oluşturmaya çalıştığı varlık zaten var. |
7 | PERMISSION_DENIED |
Arayanın belirtilen işlemi yürütme izni yok. Bazı kaynakların tükenmesinden kaynaklanan retler için PERMISSION_DENIED kullanmayın; bu hatalar için bunun yerine RESOURCE_EXHAUSTED kullanın. Arayan kişi tanımlanamıyorsa PERMISSION_DENIED kullanmayın (bu hatalar için bunun yerine UNAUTHENTICATED kullanın). PERMISSION_DENIED hata kodu almak, isteğin geçerli olduğu, istenen varlığın var olduğu veya 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 gerekli durumda olmadığından işlem reddedildi. Örneğin, silinecek dizin boş değildir veya dizin olmayan bir dizine rmdir işlemi uygulanmıştır. |
10 | ABORTED |
Genellikle sıralayıcı kontrolü hatası veya işlemin iptali gibi bir eşzamanlılık sorunu nedeniyle işlem iptal edilmiştir. |
11 | OUT_OF_RANGE |
İşlem geçerli aralığı aşacak şekilde yapılmaya çalışıldı. |
12 | UNIMPLEMENTED |
İşlem uygulanmadı veya bu hizmette desteklenmiyor/etkinleştirilmiyor. |
13 | INTERNAL |
Dahili hatalar. Bu, temel sistemin beklediği bazı sabitlerin 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 geçici bir durumdur ve geri çekilme ile yeniden denetlendiğinde düzeltilebilir. |
15 | DATA_LOSS |
Kurtarılamaz veri kaybı veya bozulması |
16 | UNAUTHENTICATED |
İstekte işlem için geçerli kimlik doğrulama bilgileri bulunmuyor. |
Bazen birden fazla hata kodu geçerli olabilir. Hizmetler, geçerli olan en spesifik hata kodunu döndürmelidir. Örneğin, her iki kod da geçerliyse FAILED_PRECONDITION
yerine OUT_OF_RANGE
tercih edin.
Benzer şekilde, FAILED_PRECONDITION
yerine NOT_FOUND
veya ALREADY_EXISTS
seçeneğini tercih edin.
FAILED_PRESTATUS - ABORTED - UNAVAILABLE karşılaştırması
Aşağıda FAILED_PRECONDITION
, ABORTED
ve UNAVAILABLE
arasında karar vermenize yardımcı olabilecek bir değerlendirme testi verilmiştir:
- İstemci yalnızca başarısız çağrıyı yeniden deneyebiliyorsa
UNAVAILABLE
değerini kullanın. - İstemcinin daha yüksek düzeyde yeniden denemesi gerekiyorsa (örneğin, istemci tarafından belirtilen bir test ve ayarlama başarısız olduğunda) ve istemcinin bir okuma-değiştirme-yazma sırasını yeniden başlatması gerektiğini belirten durumlarda
ABORTED
kullanın. - İstemcinin, sistem durumu açıkça düzeltilene kadar yeniden denememesi gerekiyorsa
FAILED_PRECONDITION
değerini kullanın. Örneğin, dizin boş olmadığı için bir "rmdir" başarısız olursa istemci, dosyalar dizinden silinmediği sürece yeniden deneme yapmayacağından en iyi yöntemFAILED_PRECONDITION
hatası almaktır.
INVALID_ARGUMENT - FAILED_PRECondition - OUT_OF_RANGE karşılaştırması
Aşağıda INVALID_ARGUMENT
, FAILED_PRECONDITION
ve OUT_OF_RANGE
arasında karar vermenize yardımcı olabilecek bir değerlendirme testi verilmiştir:
- Sistemin durumundan bağımsız olarak bağımsız değişkenler sorunluysa
INVALID_ARGUMENT
kullanın. Örneğin: bozuk bir URL - Değer, sistemin durumu nedeniyle aralık dışındaysa
OUT_OF_RANGE
kullanın. Örneğin, başlangıç_tarihistart_date_restrict
tarihinden öncedir. - Değer, sistemin durumu nedeniyle geçersizse ancak bir
OUT_OF_RANGE
değeri değilseFAILED_PRECONDITION
değerini kullanın.