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 stato | Descrizione |
---|---|
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 stato | Descrizione |
---|---|
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:
|
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. |