Gestire gli errori dell'SDK consumer

L'SDK consumer invia errori di aggiornamento della corsa all'app consumer utilizzando un callback meccanismo di attenzione. Il parametro di callback è un tipo restituito specifico della piattaforma ( TripUpdateError su Android NSError su iOS).

Estrarre i codici di stato

Gli errori passati al callback sono in genere errori gRPC e puoi anche estrarre informazioni aggiuntive sotto forma di codice di stato. Per per l'elenco completo dei codici di stato, consulta Codici di stato e loro utilizzo in gRPC.

Java

Puoi estrarre un codice di stato gRPC che fornisce i dettagli sull'errore da TripUpdateError restituito da onTripUpdateError().

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

Kotlin

Puoi estrarre un codice di stato gRPC che fornisce i dettagli sull'errore da TripUpdateError restituito da onTripUpdateError().

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

Swift

Il numero NSError viene richiamato tra 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

Il numero NSError viene richiamato tra 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;
    ...
  }
}

Interpretare i codici di stato

I codici di stato coprono due tipi di errori: quelli relativi al server e alla rete, mentre lato client.

Errori del server e della rete

I seguenti codici di stato riguardano errori di rete o del server e non occorre fare nulla per risolverli. L'SDK consumer viene li recupera.

Codice di statoDescrizione
INTERROTTO Il server ha smesso di inviare la risposta. Questo è causato di solito da un problema con il server.
CANCELLATO Il server ha terminato la risposta in uscita. Questa operazione normalmente si verifica quando
l'app viene inviata in background o quando si verifica un cambiamento di stato
App consumer.
INTERROTTO
DEADLINE_EXCEEDED Il server ha impiegato troppo tempo per rispondere.
UNAVAILABLE Il server non era disponibile. Questo è causato di solito da una rete problema.

Errori client

I seguenti codici di stato riguardano gli errori del client e devi intervenire per risolverle. L'SDK consumer continua a riprovare ad aggiornare il percorso finché condivisione del percorso, ma non si ripristina finché non intervieni.

Codice di statoDescrizione
INVALID_ARGUMENT L'app consumer ha specificato un nome di viaggio non valido. Il nome della corsa deve sono nel formato providers/{provider_id}/trips/{trip_id}.
NOT_FOUND Il viaggio non è mai stato creato.
PERMISSION_DENIED L'app consumer non ha autorizzazioni sufficienti. Questo errore si verifica quando:
  • L'app consumer non dispone delle autorizzazioni
  • L'SDK consumer non è abilitato per il progetto in Google Cloud Google Cloud.
  • Token JWT mancante o non valido.
  • Il token JWT è firmato con un ID corsa che non corrisponde alla percorso richiesto.
RESOURCE_EXHAUSTED La quota di risorse è pari a zero o la velocità del flusso di traffico supera la limite di velocità.
NON AUTENTICATO La richiesta non è riuscita a eseguire l'autenticazione a causa di un token JWT non valido. Questo si verifica quando il token JWT è firmato senza un ID trip oppure quando il token JWT è scaduto.