Frage

Sie den Code in dem Schreiben, das die Ausnahme wirft ich hier , kam ich zu dem Ende der Nachricht, und machte eine Pause an der Interpunktion. Ich erkennen, dass fast jede Ausnahme Botschaft, die ich jemals wahrscheinlich hat geworfen haben! irgendwo.

throw new InvalidOperationException("I'm not configured correctly!");
throw new ArgumentNullException("You passed a null!");
throw new StupidUserException("You can't divide by 0!  What the hell were you THINKING???  DUMMY!!!!!");

Welche Ton nehmen Sie, wenn Ausnahmemeldungen zu schreiben? Wenn durch Protokolle gehen, finden Sie eine bestimmte Art von Nachricht tatsächlich hilft, mehr als andere?

War es hilfreich?

Lösung

Ein Plauderton in Systemmeldungen macht die Software aussehen unprofessionell und schlampig. Ausrufezeichen, Beleidigungen und Slang nicht wirklich einen Platz in poliert Ausnahmemeldungen haben.

Auch neige ich verschiedene Stile in Java für Runtime-Ausnahmen verwenden und überprüfte Ausnahmen, da Laufzeitausnahmen für den Programmierer angesprochen werden, die den Fehler gemacht. Da Laufzeitausnahmen Benutzer möglicherweise angezeigt werden, um zu beenden, ich „sauber halten“, nach wie vor aber sie können ein wenig mehr prägnant und kryptisch. Geprüft Ausnahmemeldungen sollten hilfreich sein, da es sein kann, dass der Benutzer kann das Problem beheben, wenn Sie es beschreiben (zum Beispiel Datei nicht gefunden, Festplatte voll, keine Route zum Host, usw.).

Eine Sache, die hilfreich ist, in Abwesenheit eines bestimmten Feldes auf der Ausnahme für die Informationen, die säumigen Daten:

throw new IndexOutOfBoundsException("offset < 0: " + off);

Andere Tipps

Nur in der Tat sein. Fügen Sie alle Informationen, die Sie wahrscheinlich brauchen beim Debuggen, aber nicht mehr als das.

Das einzige Mal, dass ich ein Ausrufezeichen in einer Ausnahmemeldung enthalten würde, wenn es das wirklich etwas gibt, wirklich bizarr passiert ist. Die meisten Fehler nicht wirklich bizarr, nur das Produkt einer falschen Umgebung, Benutzerfehler oder ein einfachen Programmierfehler.

Ich versuche, den Ton zu spiegeln, Grammatik und Zeichensetzung Stil des Rahmens gegen die ich bin Codierung. Man weiß ja nie, wenn eine dieser Meldungen tatsächlich vor einem Client oder Benutzer ausmachen könnte, so halte ich alles professionell, nicht wertend und spezifisch genug, um für die Fehlersuche - ohne so spezifisch zu sein, wie Sicherheitsprobleme in der weggeben Code.

Ich vermeide Ausrufezeichen in allen Strings (UI und Ausnahme) wie die Pest, mit der Ausnahme (ocasionally) in meinen Unit-Tests.

Verantwortung übernehmen, auch wenn es wirklich die Schuld des Benutzers ist, ist die beste Option, die ich gesehen habe.

Dinge entlang der Linien von „Ich kann die Datei nicht finden Sie wollten, würden Sie zu sehen, überprüfen ich es richtig haben?“ oder „ging etwas schief. Keine Ahnung, was, aber der einzige Weg, kann ich repariert ist durch Anhalten. Bitte starten Sie mich.“

Ich finde die meist nützlichen Meldungen bieten:

  • A konsistentes Format , die es leicht zu verstehen macht, was sie Sie sagen.
  • A Zeitstempel, , so dass Sie ein Gefühl für die Dynamik des Programms erhalten.
  • A lapidare Zusammenfassung des Fehlers. Wenn Sie den technischen Support zur Verfügung stellen, fügen Sie ein Fehlercode zur schnellen Identifizierung.
  • Ein Erklärung dessen, was schief gelaufen ist, Unterscheidung zwischen einem ungültige Benutzereingaben und Codierungsfehler.
  • Detaillierte Informationen , einschließlich der Codezeile oder Werte beteiligt.

Und am wichtigsten:

  • Sie sagen dem Benutzer, wie das Problem zu beheben.

Beispiel:

Error 203 (Timeout) in commit.c line 42:
Unable to save salary data for user 'Linus' to database at '10.10.1.21'
after 1500ms.  Verify database address and login credentials.

Eines der schwierigsten Lektionen zu lernen, ist, dass die Benutzer in die Interna des Codes weit weniger interessiert sind, als sie sind in immer ihre Arbeit getan. Machen Sie es so einfach wie möglich für sie zu tun ihre Arbeit, und Sie haben einen enormen Wert für Ihre Software hinzugefügt.

Ich neige dazu, meine Ausnahmemeldungen in die Ausnahme selbst zu arbeiten. Z.B. ein file_not_found sollte sagen: „Datei nicht gefunden“. Spezifische Daten sollten nur dann angezeigt, wenn der Benutzer es nicht herausfinden können; in diesem Fall weiß der Benutzer die Dateinamen, so dass ich nicht, dass die Daten hinzufügen. Die Formatierung kann durch was auch immer gibt die Informationen bei Bedarf durchgeführt werden, so dass ich versuchen, sie so freundlich wie möglich zu machen, um eine Neuformatierung.

Polite, kurz und bündig, einfach, spezifisch. Oft, einschließlich Zustandswerte in Meldung ist hilfreich.

scroll top