40 votes

Comment écrire de bons messages d'erreur?

Alors que c'est plus une langue écrite problème de codage, c'est quelque chose que les programmeurs doivent se faire dans des circonstances où la copie n'est pas fourni par un client ou quelqu'un d'autre. Des exemples de messages d'erreur, bons ou mauvais, sont les bienvenus pour faire le point.

J'ai brièvement cherché et ne pouvait pas trouver un dupe du fil. Ok, avoir à elle. Merci à tous.

27voto

Scott Langham Points 17447
  • S'excuser.
  • Dire ce qui n'allait pas.
  • Dire comment le résoudre.
  • Être poli.
  • Le message doit être rédigé de sorte que l'application accepte la responsabilité du problème. Ne jamais blâmer ou de critiquer l'utilisateur ou de leur faire croire que c'est de leur faute.

Exemple:
"Désolé, le fichier ne peut être ouvert. Veuillez vérifier que le fichier n'est pas déjà ouvert par un autre programme et essayez à nouveau."

Si il y a d'autres détails qui pourrait l'effrayer l'utilisateur, par exemple un numéro d'erreur ou quelque chose d'autre, seulement un développeur de le comprendre, de ne pas les montrer. Les écrire dans un fichier journal, ou d'avoir un bouton "détails" qui peuvent être pressés d'arriver à eux.

Je suppose que vous parlez montrant des messages d'erreur pour les utilisateurs dans les boîtes de message ou sur l'écran.

12voto

Michael Easter Points 7482

Voulez-vous dire par l'utilisateur en face ou dans un fichier de log admin/dev personnel?

Je pense que c'est important, en général:

  • D'horodatage
  • Niveau de gravité
  • ce qui s'est mal passé
  • Répondre à la question suivante: "dois-je agir?" et "si oui, quelles actions?"
  • dev-niveau de détail (pas de manière évidente, si l'utilisateur face)
  • format cohérent et conditions

Je pense que tous ces éléments sont importants, mais l'importance varie selon le public (comme dmckee souligne). Une autre astuce (en général) est de répondre à la 5 W (who, what, ... etc)

9voto

dmckee Points 50318

Première chose à demander:

  • Qui est le public de ce message.

Bon signifie des choses très différentes pour les utilisateurs finaux et les autres développeurs.

9voto

Joe Basirico Points 1128

Je travaille sur un logiciel de sécurité de l'entreprise, de sorte que ma réponse peut être sensiblement différente de certaines des réponses ci-dessus.

Un bon utilisateur en face de message d'erreur est:

Équilibré entre les génériques et spécifiques que Vous souhaitez donner à l'utilisateur suffisamment d'informations qu'ils peuvent corriger leur erreur et de passer, mais gardez à l'esprit qu'un attaquant pourrait utiliser ces mêmes messages d'erreur à l'attaque de votre site. Un bon exemple de ceci est un contrôle de connexion, dans lequel un message d'erreur est retourné. "mot de passe incorrect pour l'utilisateur joe" ou "l'utilisateur joe n'existe pas dans ce système" ceci dit l'attaquant qu'ils sont sur le chemin de la découverte de corriger les utilisateurs. Qui quand vous avez ni d'un nom d'utilisateur ou un mot de passe est la moitié de la bataille.

Indique à l'utilisateur ce qui s'est passé – encore une fois c'est équilibré entre les génériques et spécifiques. Un utilisateur ne doit jamais voir un message d'erreur ODBC, mais il pourrait être utile pour eux de savoir que l'erreur est de votre faute, et qu'ils devraient essayer de nouveau dans quelques minutes. Indiquer à l'utilisateur ce qu'ils peuvent faire pour aider – si vous avez un backend système de journalisation (qui doit) journal de tout ce que vous pensez être utile, puis générer un code que vous pouvez fournir à l'utilisateur, de sorte qu'ils peuvent appeler ou e-mail et de vous indiquer exacte étapes de reproduction. Vous pouvez également automatiser ce, en exposant un bug du formulaire de soumission lorsqu'une erreur se produit.

Être compatible – l'utilisation d'une erreur de la table de recherche pour vous assurer que vos erreurs sont les mêmes (pour le même problème) et qu'ils sont bien écrits. Les fautes de frappe, fautes d'orthographe et les erreurs grammaticales ne peut pas être toléré dans le logiciel de production.

8voto

JacquesB Points 19878

Pour les utilisateurs finaux: indiquer à l'utilisateur quoi faire. Si l'utilisateur de changer certaines de la valeur d'entrée, nouvelle tentative en 5 minutes ou à la demande de soutien?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X