Obsługa błędów pakietów SDK dla konsumentów

Pakiet SDK Consumer SDK wysyła do aplikacji konsumenta błędy aktualizacji podróży za pomocą wywołania zwrotnego . Parametr wywołania zwrotnego jest typem zwrotu specyficznym dla platformy ( TripUpdateError na Androidzie oraz NSError w systemie iOS).

Wyodrębnianie kodów stanu

Błędy przekazywane do wywołania zwrotnego są zwykle błędami gRPC. Możesz również wyodrębnienia z nich dodatkowych informacji w postaci kodu stanu. W przypadku wartości pełna lista kodów stanu, patrz Kody stanu i ich zastosowania w gRPC.

Java

Możesz wyodrębnić kod stanu gRPC zawierający szczegółowe informacje o błędzie od: TripUpdateError zwróconych przez: onTripUpdateError().

// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
  Status.Code code = error.getStatusCode();
}

Kotlin

Możesz wyodrębnić kod stanu gRPC zawierający szczegółowe informacje o błędzie od: TripUpdateError zwróconych przez: onTripUpdateError().

// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
  val code = error.getStatusCode()
}

Swift

Element NSError zostaje wywołany ponownie za tripModel(_:didFailUpdateTripWithError:).

// Called when there is a trip update error.
func tripModel(_ tripModel: GMTCTripModel, didFailUpdateTripWithError error: Error?) {
  // Check to see if the error comes from gRPC.
  if let error = error as NSError?, error.domain == "io.grpc" {
    let gRPCErrorCode = error.code
    ...
  }
}

Objective-C

Element NSError zostaje wywołany ponownie za tripModel:didFailUpdateTripWithError:.

// Called when there is a trip update error.
- (void)tripModel:(GMTCTripModel *)tripModel didFailUpdateTripWithError:(NSError *)error {
  // Check to see if the error comes from gRPC.
  if ([error.domain isEqualToString:@"io.grpc"]) {
    NSInteger gRPCErrorCode = error.code;
    ...
  }
}

Zinterpretuj kody stanu

Kody stanu obejmują dwa rodzaje błędów: błędy serwera i sieci oraz po stronie klienta.

Błędy serwera i sieci

Poniższe kody stanu dotyczą błędów sieci lub serwera i nie muszą nic robić. Pakiet SDK klienta automatycznie po takim okresie.

Kod stanuOpis
ANULOWANO Serwer przestał wysyłać odpowiedź. Przyczyną tej sytuacji jest zwykle problem z serwerem.
ANULOWANO Serwer zakończył odpowiedź wychodzącą. To normalne ma miejsce, gdy
aplikacja jest wysyłana w tle lub po zmianie stanu
Aplikacja dla klientów indywidualnych.
PRZERWA
DEADLINE_EXCEEDED Oczekiwanie na odpowiedź serwera trwało zbyt długo.
PRODUKT NIEDOSTĘPNY Serwer był niedostępny. Przyczyną problemu jest zwykle sieć .

Błędy klienta

Poniższe kody stanu dotyczą błędów klienta i musisz podjąć działania, aby i ją rozwiązać. Pakiet SDK klienta będzie ponawiać próby odświeżenia podróży, dopóki nie aby zakończyć udostępnianie ścieżki, ale nie zostanie ono przywrócone, dopóki nie podejmiesz działań.

Kod stanuOpis
INVALID_ARGUMENT Aplikacja konsumenta podała nieprawidłową nazwę podróży. Nazwa podróży musi musi mieć format providers/{provider_id}/trips/{trip_id}.
NOT_FOUND Podróż nie została utworzona.
PERMISSION_DENIED Aplikacja konsumenta ma niewystarczające uprawnienia. Ten błąd występuje, gdy:
  • Aplikacja konsumenta nie ma uprawnień
  • W projekcie w Google Cloud nie włączono pakietu SDK dla klientów indywidualnych Konsola.
  • Brakuje tokena JWT lub jest on nieprawidłowy.
  • Token JWT jest podpisany za pomocą identyfikatora podróży, który nie pasuje do identyfikatora podróży wybrana podróż.
RESOURCE_EXHAUSTED Limit zasobów wynosi zero lub tempo przepływu ruchu przekracza ograniczenia prędkości.
BEZ UWIERZYTELNIANIA Uwierzytelnianie nie powiodło się z powodu nieprawidłowego tokena JWT. Ten występuje, gdy token JWT jest podpisany bez identyfikatora podróży lub po wygaśnięciu tokena JWT.