Frage bzgl. Exception (Wurfpunkt)



  • Wieso rufst du nicht einfach Exception.ToString() auf? Da ist der ganze Callstack ja schon hübsch formatiert mit drinnen...
    😕

    Sich selbst irgendwie durch den Callstack zu wühlen, macht wohl nur Sinn, wenn man sehr spezielle Anforderungen hat. z.B. dass man ihn (warum auch immer) als XML formatieren möchte, oder Zeilenweise in einer Datenbank speichern oder etwas in der Art.



  • Ich möchte aber wie bereits gesagt, ein Log erstellen in dem alle Exceptions die aufgetreten sind gespeichert werden.

    Das Log soll die Exception an sich beinhalten, den StackTrace, den Typ der Exception, die Klasse, die methode und die Zeile in der die Exception verursacht wurde.

    Einfach um hinterher schneller den Fehler lokalisieren zu können.

    Ich komme doch nun an alle benötigten Informationen.

    // Edit

    Was haltet ihr für sinnvoller? Abspeichern des Logs als reine Textdatei oder in XML?



  • hustbaer schrieb:

    Sich selbst irgendwie durch den Callstack zu wühlen, macht wohl nur Sinn, wenn man sehr spezielle Anforderungen hat. z.B. dass man ihn (warum auch immer) als XML formatieren möchte, oder Zeilenweise in einer Datenbank speichern oder etwas in der Art.

    bei mir ist es ebenfalls ein Logfile ... allerdings rufe ich den StackFrame nicht bei einer Exception auf sondern über eine Log-Meldung ... um zusehen welche Klasse bzw. Methode das ist ... zusätzlich kommen da noch Datum & Zeit sowie der Thread in die Zeile

    inflames2k schrieb:

    Was haltet ihr für sinnvoller? Abspeichern des Logs als reine Textdatei oder in XML?

    wenn Du es nur zum nachschauen benutzt, dann ist wohl Text am besten ... da kannst Du es gleich mit Notepad betrachten ... jede Exception eine Zeile mit allen Informationen

    Datum Zeit Klasse Zeile Exception.Message
    

    falls Du es später doch noch als XML brauchst kannst Du es ja parsen bzw. konvertieren

    hand, mogel



  • Ich werd mich wohl doch für XML entscheiden, da mir dort die Vorteile überwiegen.

    Immerhin ist es zum einen bei großen Dateien übersichtlicher & zum anderen einfacher zu handhaben.

    Bin mir noch nicht sicher, werde aber denk ich folgendes XML Schema wählen:

    <xml version="1.0">
      <Exceptions>
         <singleException>
             <DateTime>XX.XX.XXX - XX:XX</DateTime>
             <Message>Lorem ipsum dolor sit Amet...</Message>
             <Type>Exceptiontyp</Type>
             <StackTrace>xxxxxxxxxxxxxxxxxxxxxxxxx
                         xxxxxxxxxxxxxxxxxxxxxxxxx
             </StackTrace>
             <Class>Klassenname</Class>
             <Method>Methodenname</Method>
             <Line>Zeilennummer</Line>
         </singleException>
      </Exceptions>
    


  • Ich hab mir überlegt, dass ich die DLL wenn sie fertig ist, auch im release drin lasse.

    Grund dafür ist, dass sollte eine nicht behandelte Exception geworfen werden (an die man beim Entwickeln nicht gedacht hat & welche beim Betatest nicht auffiel), dass der Endbenutzer dann per Copy Button den Log-Text der aktuellen Exception kopieren kann und dann im Forum des Entwicklers seine Fehlerbeschreibung abgeben kann und außerdem den Logeintrag dazu posten kann.

    So kann der Fehler denk ich am ehesten gefixt werden.

    Hier mal 2 Screenshots vom Exception Fenster:

    Eigentliche Exception:
    http://www.myimg.de/?img=screenErrorReportc7dd7.gif

    Exception Log:
    http://www.myimg.de/?img=screenErrorReportLog8d181.gif

    Wollt anbei mal fragen, was ihr davon haltet, und ob es Übersichtlich genug ist. 🙂



  • ich finds gut und übersichtlich 👍



  • ja ... aber wenn der Benutzer schon auf einer Webseite den Text eintragen kann - wieso nicht gleich ein automatischen Upload ?



  • wäre eine Idee jedoch mit Einverständniserklärung vorher



  • Das ist allerdings auch eine Idee. Sogar eine Prima Idee wie ich finde. - Werds noch mit einbauen. - Aber nicht heut *g*

    Die Einverständniserklärung find ich wäre recht simple Lösbar, einfach unten noch einen Button hin "Fehlerbericht senden". - Wenn der Benutzer diesen klickt, muss er ja damit einverstanden sein.

    Allerdings werd ich dann noch ein extra Eingabefeld hinzufügen, wo der Benutzer selbst noch eintragen kann was er genau gemacht hat.

    Nun ist nur die Frage, lasse ich das ganze Logfile hochladen, oder nur die Exception die gerade geworfen wurde?



  • Für sowas würde sich wohl ein Minidump besser eignen, oder?


Anmelden zum Antworten