Anwendungen können immer Fehler auslösen. Wenn ein solcher Fehler auftritt, sollte der Benutzer benachrichtigt werden, da das, was er von der Anwendung verlangt hat, nicht erfolgreich war.
Wie viele Informationen sollte der Benutzer jedoch erhalten? Ich denke, die meisten von uns stimmen darin überein, keinen Stack-Trace anzuzeigen ( Sollte ein Stack-Trace in der Fehlermeldung enthalten sein, die dem Benutzer angezeigt wird? ), Aber ich kann keine Frage zum Rest des Fehlerinhalts oder zu dem, was angezeigt werden soll, finden Benutzer.
Beispielsweise muss eine Sprache, die Ausnahmen unterstützt (.net, java), den Ausnahmetyp freigeben, in dem die Ausnahme aufgetreten ist, und eine etwas klarstellende Meldung, die mit der Ausnahme einhergeht. Sollte dies auch vor dem Benutzer verborgen bleiben? Oder sollten wir das trotzdem zeigen? Oder sollten wir eine allgemeine Nachricht anzeigen? Oder sollten wir eine von mehreren Nachrichten anzeigen, basierend auf der zugrunde liegenden Ausnahme?
You show the user what is actionable for them
. Wenn Sie die Ursache des Problems kennen, zeigen Sie dies dem Benutzer in der Beschreibung. Aber in der Regel , wenn Sie wissen , den Grund für einen Fehler finden Sie kennen die Problemlösung die Benutzer in geeigneter Weise zu informieren.Es kommt darauf an, wer der Benutzer ist und was er mit den Informationen anfangen kann.
Versuchen Sie im Allgemeinen, ihnen nur nützliche Informationen zu Dingen zu zeigen, die sie selbst lösen können. Eine 40-Zeilen-Stack-Ablaufverfolgung mit einem Fehler durch reguläre Ausdrücke im oberen Bereich ist nicht sehr nützlich. Viel besser wäre eine Meldung, die besagt, dass Datum als "JJJJ-MM-TT" formatiert sein muss . Alles andere und der Benutzer weiß möglicherweise nicht, wie er auf den Fehler reagieren soll, und möchte Ihre Anwendung dann möglicherweise nicht verwenden, aus Angst, dass es zu kryptischeren und beängstigenderen Fehlern kommt (und ja, nicht-technische Benutzer haben manchmal Angst vor dem Stack Spuren). Und das könnte schlecht fürs Geschäft sein.
Für interne Anwendungen von anderen Entwicklern verwendet wird , bin ich ein wenig mehr entspannt über einen Stack - Trace, zeigt zusätzlich zu etwas nützlich , weil ich der Benutzer wissen umgehen kann einen Stack - Trace zu sehen und wird wahrscheinlich wissen , was zu tun ist .
Für nicht technische Benutzer ist es meines Erachtens nur in einer kritischen Fehlersituation in Ordnung, ihnen einen Stack-Trace anzuzeigen, wenn Sie ihn zur Behebung des Problems benötigen. Sie werden aufgefordert, den Stack-Trace zu kopieren, einzufügen und zu senden Obwohl es eine viel bessere Möglichkeit ist, die Anwendung zum Senden einer Protokolldatei aufzufordern, oder noch besser, eine Protokolldatei an den Entwickler zu senden, nachdem Sie den Benutzer um die Erlaubnis gebeten haben, die Datei freizugeben.
quelle
Nachrichten an die Benutzer sollten genauso behandelt werden wie das Erstellen einer neuen Ausnahmebedingung - Sie geben die Informationen an, die sie benötigen, um zu entscheiden, was zu tun ist.
Dies hängt natürlich von Ihrer Anwendung und Ihrer Nutzerbasis ab, sollte jedoch Ihr Leitgedanke sein - Ihre Absicht sollte es sein, die Informationen bereitzustellen, die der "Anrufer" benötigt, um zu bestimmen, was er, wenn überhaupt, tun kann, um die gewünschte Aktion erfolgreich durchzuführen . Wenn es sich einfach um einen Zugriffsfehler auf eine Datei handelt, geben Sie einen Dateipfad und die Meldung an, dass Sie nicht darauf zugreifen konnten. Wenn es sich um eine Nullzeigerausnahme handelt, geben Sie einfach eine allgemeine Fehlermeldung aus.
Natürlich wird es mehr Meldungen geben, die nicht in der Lage sind, die gewünschte Aktion auszuführen, als der Benutzer tatsächlich beheben kann, aber das ist nur das Leben - die meisten Ausnahmen sind, weil wir einen Fehler gemacht haben, und nicht, weil der Benutzer die Umgebung eingerichtet hat falsch.
quelle
Dies ist ein allgemeines Thema:
Wie können Sie Uninformierten / Computer-Analphabeten helfen und gleichzeitig Informationen anzeigen, die fortgeschrittenere Benutzer wie Programmierer, Entwickler, Tester usw. verwenden können?
Ich denke die Antwort ist, dass Sie beides tun!
Die Reihenfolge ist jedoch wichtig und ich empfehle Ihnen Folgendes:
Technische Details ist der Teil, der Informationen für Vorbestellungen oder für reguläre Benutzer enthält, wenn ein Problem gemeldet wird
quelle
Was du zeigen willst, hängt davon ab, wie beschämt du dich für das Miststück bist.
Es geht darum, die Einzelheiten des Ausfalls des technischen Supports so schnell und reibungslos wie möglich zu ermitteln. Das kann bedeuten, dass Sie die Protokolldatei mit dem Stack-Trace des Beendigungsfehlers automatisch nach Hause senden oder den Benutzer auffordern, auf eine Schaltfläche zu klicken, die die Übertragung initiiert. Möglicherweise über einen USB-Stick, wenn keine Internetverbindung besteht.
quelle
Ich mag die Gründe für die akzeptierte Antwort, aber ich muss zumindest mit meiner Interpretation der Beschränkung der Informationen auf das, was "umsetzbar" ist, respektvoll nicht einverstanden sein . Ich möchte nur ein bisschen mehr als das als Benutzer als "unerwarteter Fehler" wissen .
Zugegeben, ich bin ein bisschen computerversiert und habe diese Vorurteile, aber ich denke nicht, dass dies eine besonders voreingenommene Ansicht ist. Weil ich mein Bestes geben kann, um diese Tendenz zu beseitigen, indem ich diese Denkweise auf Bereiche anwende, für die ich wenig Erfahrung habe, wie die Luftfahrt.
Ich weiß zwar wenig über die Luftfahrt, sage jedoch, mein Flug sei verspätet oder annulliert, und das einzige, was die Mitarbeiter mir mitteilen, ist: "Wir hatten einen unerwarteten Fehler. Bitte warten Sie 3 Stunden, bis ein weiterer Flug beginnt." Zumindest empfinden Sie mich in diesen Fällen eher als verärgerten Kunden, denn obwohl dies meine Vorgehensweise in keiner Weise wirklich beeinflusst, möchte ich nur ein bisschen mehr darüber erfahren, warum ich so bin auf diese Weise als zahlender Kunde belästigt.
Wenn sie nur sagten: "Wir erleben turbulentes Wetter" oder "Wir hatten einen medizinischen Notfall in unserem vorherigen Flug" oder eine Gerätefehlfunktion oder was auch immer, dann reicht das für mich aus, um viel mehr als "unerwartete Fehler" zu sympathisieren Sei ein bisschen zufriedener damit, herumzusitzen und 3 Stunden auf den nächsten Flug zu warten. Vielleicht bevorzuge ich sogar ein Technobabble, das über meinen Kopf geht und "unerwarteten Fehlern" wie "In Ordnung, die Wörter, die aus Ihrem Mund kommen, gehen in mein Ohr, erreichen aber nicht den Zentralprozessor. Aber ich verstehe jetzt, dass es eine Art gibt Ich gehe Kaffee trinken und setze mich dort hin! Hoffe ihr kriegt das Problem mit dem Ding in den Griff! "
Und häufig, was die Ausnahmebehandlung anbelangt, denke ich, dass Sie in der Regel über genügend grundlegende Informationen zu den Ereignissen auf der
catch
Website verfügen , auch wenn Sie die technischen Details der Ausnahme ausblenden möchten, z.Und das zeigt nicht einmal die möglicherweise sehr technischen Informationen an, die mit der Ausnahme verbunden sind, aber es sagt uns zumindest deutlich mehr als "unerwarteter Fehler". Es liefert zumindest ein kontextuelles "Was / Wo / Wann", auch wenn es nicht "Warum / Wie" sagt. Ich denke, zumindest der Wunsch nach dieser grundlegenden Informationsebene ist nicht besonders von meiner Computer-Geschicklichkeit beeinflusst.
Der Rest ist wahrscheinlich sehr spezifisch für Ihre Kunden und besonderen Bedürfnisse. Aber mein Appell ist zumindest für etwas, das nur ein kleines bisschen mehr ist als "unerwarteter Fehler".
quelle