Les applications peuvent toujours générer des erreurs. Si une telle erreur se produit, l'utilisateur doit en être averti, car ce qu'il a demandé à l'application de faire n'a pas abouti.
Cependant, quelle quantité d'informations l'utilisateur devrait-il recevoir? Je pense que la plupart d’entre nous sont d’accord pour ne pas afficher de trace de pile ( une trace de pile doit-elle figurer dans le message d’erreur présenté à l’utilisateur? ), Mais je ne trouve pas de question sur le reste du contenu de l’erreur ni sur les éléments à afficher. utilisateur.
Par exemple, une langue prenant en charge les exceptions (.net, java) a le type d’exception à partager, où l’exception s’est produite, et un message un peu plus explicite à accompagner l’exception. Est-ce que cela devrait aussi être caché à l'utilisateur? Ou devrions-nous montrer cela quand même? Ou devrions-nous montrer un message générique? ou devrions-nous afficher l'un des nombreux messages en fonction de l'exception sous-jacente?
la source
You show the user what is actionable for them
. Si vous connaissez la cause du problème, montrez-le à l'utilisateur dans la description. Mais généralement, si vous connaissez la raison d'une erreur, vous connaîtrez la résolution du problème pour informer l'utilisateur de manière appropriée.Cela dépend de qui est l'utilisateur et de ce qu'il peut faire avec l'information.
En règle générale, essayez de ne leur montrer que des informations utiles sur les problèmes qu'ils peuvent résoudre eux-mêmes. Une trace de pile de 40 lignes avec une erreur d'expression régulière en haut n'est pas très utile. Il serait bien mieux d'envoyer un message indiquant que la date doit être au format "aaaa-mm-jj" . Tout le reste, et l'utilisateur peut ne pas savoir comment réagir à l'erreur, puis ne pas vouloir utiliser votre application, de peur que cela ne provoque des erreurs plus énigmatiques et effrayantes (et oui, les utilisateurs non techniques sont parfois effrayés par la pile traces). Et cela pourrait être mauvais pour les affaires.
Pour les applications internes utilisées par d'autres développeurs, je suis un peu plus serein quant à l'affichage d'une trace de pile, en plus de quelque chose de plus utile , car je sais que l'utilisateur peut gérer la visualisation d'une trace de pile et saura probablement quoi faire à ce sujet.
Pour les utilisateurs non techniques, la seule fois où je pense qu'il serait correct de leur montrer une trace de pile est dans une situation d'erreur critique où vous en avez besoin pour résoudre le problème, et on leur demande de copier et coller la trace de pile et de l'envoyer. pour vous, bien que le meilleur moyen de le faire est de leur demander d'envoyer un fichier journal ou, mieux encore, de faire en sorte que l'application envoie un fichier journal au développeur, après avoir demandé à l'utilisateur l'autorisation de partager le fichier.
la source
Les messages destinés aux utilisateurs doivent être traités de la même manière que lors de la création d'une nouvelle exception à lancer: vous fournissez les informations dont ils auront besoin pour décider quoi faire.
Cela dépendra bien sûr de votre application et de votre base utilisateur, mais ce devrait être votre principe directeur: votre objectif devrait être de fournir les informations nécessaires à "l'appelant" afin de déterminer ce qu'il peut éventuellement faire pour mener à bien l'action souhaitée. . Si c'est quelque chose de simple, comme une erreur d'accès à un fichier, vous indiquez un chemin d'accès au fichier et le message auquel vous ne pouvez pas y accéder. S'il s'agit d'une exception de pointeur nul, donnez simplement un message d'erreur générique.
Bien sûr, il y aura plus de messages "incapables d'exécuter l'action souhaitée" que de messages pouvant être résolus par l'utilisateur, mais c'est la vie - la plupart des exceptions sont dues à une erreur, pas au fait que l'utilisateur a configuré l'environnement incorrectement.
la source
C'est un thème commun:
Comment aider les illettrés non informés / informaticiens en même temps qu’afficher des informations pouvant être utilisées par des utilisateurs plus avancés, tels que programmeurs, développeurs, testeurs, etc.
Je pense que la réponse est que vous faites les deux!
L'ordre est important cependant et je vous recommande d'avoir:
Les détails techniques sont la partie qui contient des informations pour les commandes avancées ou pour les utilisateurs réguliers lors du signalement d'un problème.
la source
Ce que vous voulez montrer dépend de votre honte d'avoir gâché.
Le but est d'obtenir les détails de l'échec du support technique le plus rapidement et le plus harmonieusement possible. Cela peut signifier que vous envoyez automatiquement le fichier journal, y compris le suivi de la pile de l'erreur de terminaison, ou demandez à l'utilisateur de cliquer sur un bouton qui initiera le transfert. Peut-être par clé USB s'il n'y a pas de connexion internet.
la source
J'aime les raisons qui sous-tendent la réponse acceptée, mais je dois respectueusement désapprouver au moins mon interprétation de limiter les informations à ce qui est "passible de poursuites" . Je veux en savoir un peu plus que cela en tant qu'utilisateur "d'erreur inattendue" .
Et certes, je suis un peu féru d’ordinateur et j’ai ce parti pris, mais je ne pense pas que ce soit une opinion particulièrement partiale. Parce que je peux faire de mon mieux pour éliminer ce biais en appliquant cet état d'esprit à des domaines pour lesquels j'ai peu de compétences, comme l'aviation.
Bien que je sache peu de choses sur l’aviation, disons que mon vol est retardé ou annulé et que le personnel ne me dit que: "Nous avons eu une erreur inattendue. Veuillez attendre 3 heures pour un vol ultérieur." Vous me trouverez au moins un peu plus mécontent dans ces cas car, même si cela n’affecte pas vraiment mon plan d’action, je veux juste en savoir un peu plus sur les raisons pour lesquelles je suis gêné de cette façon en tant que client payant.
S'ils se contentent de dire: "Nous sommes confrontés à un temps agité" ou "Nous avions une urgence médicale lors de notre vol précédent", ou un dysfonctionnement de l'équipement ou autre chose, cela me suffit amplement pour sympathiser davantage qu'une "erreur inattendue". soyez un peu plus content assis et attendez 3 heures pour le prochain vol. En fait, je pourrais peut-être même préférer un technobable qui me donne "erreur inattendue", comme: "D'accord, les mots sortent de ta bouche me parviennent à l'oreille mais n'atteignent pas le processeur central. Mais je comprends maintenant qu'il y Je vais prendre un café et m'asseoir là-bas! J'espère que vous résolvez ce problème avec ce trucamajig! "
Et souvent en termes de gestion des exceptions, je pense que vous avez généralement assez d'informations de base sur ce qui s'est passé sur le
catch
site, même si vous voulez cacher les détails plus techniques de l'exception, comme:Et cela n’affiche même pas ce qui pourrait être potentiellement les informations très techniques attachées à l’exception, mais nous dit au moins beaucoup plus que "une erreur inattendue". Il fournit au moins un contexte "quoi / où / quand" même s'il ne dit pas "pourquoi / comment". Je pense au moins que le désir de ce niveau élémentaire d’informations n’est pas particulièrement biaisé par ma maîtrise de l’ordinateur.
Le reste est probablement très spécifique à vos clients et à vos besoins particuliers. Mais mon appel concerne au moins quelque chose de plus qu'une "erreur inattendue".
la source