Wie detailliert sollten Fehlermeldungen sein?

7

Ich habe mich gefragt, wie der allgemeine Konsens über Fehlermeldungen war. Wie detailliert sollten sie sein?

Ich habe an Projekten gearbeitet, wo es eine andere Fehlermeldung für die Eingabe einer Nummer gab, die zu groß war, zu klein war, eine Dezimalzahl hatte, eine Zeichenfolge war usw. Das war ziemlich nett für den Benutzer, da er genau wusste wo die Dinge liefen schief, aber der Code zur Fehlerbehandlung begann in der Größe mit der tatsächlichen Geschäftslogik zu konkurrieren und begann, einige seiner eigenen Fehler zu entwickeln.

Auf der anderen Seite habe ich an einem Projekt gearbeitet, wo Sie sehr allgemeine Fehler wie

bekommen würden
  

COMPILE FAILED REASON 3

Was unnötig zu sagen ist, war fast völlig nutzlos, da sich Grund 3 als Linkfehler herausstellte.

Wo ist der Mittelweg? Woher weiß ich, ob ich beschreibende Fehlermeldungen hinzugefügt habe? Woher weiß ich, ob der Benutzer in der Lage sein wird, zu verstehen, wo die Fehler aufgetreten sind?

    
ReaperUnreal 31.12.2008, 16:12
quelle

7 Antworten

12

Es gibt zwei mögliche Zielgruppen für eine Fehlermeldung, den Benutzer und den Entwickler.

Im Allgemeinen sollte die Nachricht den Benutzer als Ziel haben.

o was ist die Ursache des Problems?
 o warum das Programm das Problem nicht umgehen kann  o Was der Benutzer tun kann, um das Problem zu umgehen.
 o wie man das Problem meldet.

Wenn das Problem gemeldet werden soll, sollte der Bericht so viele Programmkontextinformationen wie möglich enthalten.

o Modulname
 o Funktionsname
 o Zeilennummer
 o Variablen von Interesse im allgemeinen Bereich des Problems  o vielleicht sogar ein Core Dump.

Richten Sie die richtige Zielgruppe aus.

    
EvilTeach 31.12.2008, 16:20
quelle
4

Sie sollten mitteilen, was passiert ist und was die Optionen des Benutzers sind, in so wenigen Worten wie möglich. Je länger die Fehlermeldung ist, desto unwahrscheinlicher ist es, dass der Benutzer sie liest. Aus dem gleichen Grund sind kurze Fehlermeldungen kryptisch und nutzlos. Es gibt einen schönen Punkt in Bezug auf die Länge, und es ist für jede Situation anders.

Zu kurz:

  

Ungültige Eingabe.

Zu lang:

  

Geben Sie eine korrekt formatierte IP-Adresse ein, z. B. 192.168.0.1. Eine IP-Adresse ist eine Nummer, die zur Identifizierung Ihres Computers in einem Netzwerk verwendet wird.

Genau richtig:

  

Bitte geben Sie eine gültige IP-Adresse ein.

Was Code Bloat betrifft, wenn ein wenig zusätzlicher Code einen Benutzer daran hindert, Support anzurufen oder frustriert zu werden, dann ist es eine gute Investition.

    
Jon B 31.12.2008 16:19
quelle
3

Es gibt zwei Arten von Fehlermeldungen: Jene, die vom Benutzer gesehen werden und solche, die vom Programmierer gesehen werden.

"Woher weiß ich, ob der Benutzer verstehen kann, wo die Fehler aufgetreten sind?" Ich gehe davon aus, dass diese Nachrichten nur vom Benutzer gesehen werden, und nicht eine sehr technische, und COMPILE FAILED REASON 3 ist keine typische Endbenutzer-Fehlermeldung. Es ist etwas, was der Programmierer sieht (der Benutzer kompiliert normalerweise keine Dinge).

Also, wenn es der Benutzer ist, der es sehen wird:

  1. Geben Sie ein kurzes "Dies ist eine Fehlermeldung" ("Ops! Etwas ist schief gelaufen!", etc.)
  2. Geben Sie eine kleine allgemeine Beschreibung des Fehlers an ("Die Site, mit der Sie eine Verbindung herstellen möchten, scheint nicht verfügbar zu sein" / "Sie scheinen nicht über ausreichende Berechtigungen zum Ausführen der XYZ-Aufgabe zu verfügen" / etc.)
  3. Hinzufügen eines "Details & gt; & gt;" Schaltfläche, falls Ihr Benutzer Computer gut versteht, einschließlich detaillierter Informationen (Ausnahme Stapelverfolgung, Fehlercode usw.)

Schließe schließlich einige einfache und verständliche Befehle für den Benutzer ab ("Erneut versuchen", "Abbrechen", usw.).

    
luiscubal 31.12.2008 16:20
quelle
2

Die eigentliche Frage zu Fehlermeldungen ist, ob sie überhaupt angezeigt werden sollen. Viele Fehlermeldungen werden einem Benutzer angezeigt, aber es gibt KEINE Möglichkeit, sie zu korrigieren.

Solange es einen Weg gibt, den Fehler zu korrigieren, geben Sie dem Benutzer genügend Informationen, die es ihm ermöglichen, ihn selbst zu korrigieren. Wenn sie es nicht selbst beheben können, gibt es einen Grund, ihnen den technischen Grund für den Absturz zu nennen? Nein, loggen Sie es nur zur späteren Fehlersuche in eine Datei ein.

    
Adam Peck 31.12.2008 16:21
quelle
2

So detailliert wie sie sein müssen;)

Ich weiß, es klingt wie eine kluge Antwort, aber so viel hängt von Ihrer Zielgruppe und der Art des Fehlers ab. Bei Fehlern, die durch eine ungültige Benutzereingabe verursacht werden, können Sie ihnen anzeigen, was einen gültigen Eintrag ausmacht. Für Fehler, die der Benutzer nicht kontrollieren kann, könnte eine generische Meldung "Wir arbeiten daran" ausreichen.

Ich stimme auch mit Jon Bs Kommentaren hinsichtlich der Länge überein.

    
AlexCuse 31.12.2008 16:21
quelle
1

Fehlermeldungen sollten detailliert, aber klar sein. Dies kann durch die Kombination von Fehlermeldungen aus mehreren Ebenen erreicht werden:

%Vor%

Hier haben wir zwei Ebenen. Es kann mehr geben. Zuerst erzählen wir das große Bild und dann erzählen wir die Details. Die Reihenfolge ist so, dass wir zuerst den Teil verstehen, den die meisten verstehen, und dann den Teil, den die Leute weniger verstehen, aber beide können immer noch sichtbar sein.

Zusätzlich könnte es einen festen Vorschlag geben.

    
iny 31.12.2008 16:25
quelle
0

Ich würde auf der Seite von mehr Details irren, aber ich denke, dass Sie Ihre eigene Frage beantwortet haben. Um das Aufblähen im Code zu vermeiden, geben Sie nützliche Informationen in der Code / Fehlermeldung, aber Sie können mehr Details in der Dokumentation vielleicht oder mit Hilfe-Dateien oder FAQ geben.

zu wenig Informationen sind meiner Meinung nach schlimmer.

Wenn Sie eine Sprache mit reichhaltiger Introspektion oder anderen Fähigkeiten verwenden, wäre ein Protokoll mit der Zeile nützlich, die eine Prüfung nicht bestanden hat. Der Benutzer kann dann zum technischen Support weiterleiten oder auf andere Weise detaillierte Informationen erhalten. Dies ist kein zusätzlicher Code-Bloat, sondern die Verwendung von eigenem Code zur Bereitstellung von Informationen.

    
Tim 31.12.2008 16:20
quelle