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
}
})