Aller au contenu principal

Messages d'erreur

Messages d'erreur dans l'interface graphique

Dans l'interface graphique, nous avons plusieurs options pour afficher un message d'erreur à l'utilisateur:

  • un Toast mais ça reste une option principalement pour le développeur donc dans l'idéal on peut faire sans avec les Log.i()
  • un Snackbar qui est un message qui apparaît en bas de l'écran et qui disparaît après un certain temps
  • un Dialog qui est une fenêtre qui apparaît au-dessus de l'interface graphique et qui demande une action de l'utilisateur pour disparaître

On peut aussi avoir un message d'erreur sous un champ texte pour y indiquer que la valeur n'est pas valide.

Messages d'erreur sur un appel Retrofit

Lors d'un appel réseau avec Retrofit, il y a 2 cas d'erreur:

  • on a reçu une réponse du serveur qui indique un problème dans le traitement de la requête
  • on n'a pas reçu de réponse du serveur

Détecter quels cas arrivent

On va utiliser le network inspector

Structure du code d'un appel asynchrone

val call = service.getSomething()
call.enqueue(object : Callback<SomeObject> {
override fun onResponse(call: Call<SomeObject>, response: Response<SomeObject>) {
if (response.isSuccessful) {
// Traitement de la réponse
} else {
// Traitement de l'erreur avec réponse
}
}

override fun onFailure(call: Call<SomeObject>, t: Throwable) {
// Traitement de l'erreur sans réponse
}
})