Hallo,
schreib dir eine statische Methode, welches das Logging(*) übernimmt und rufe diese dann von dem
catch-Block auf, z.B.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| try { } catch(Exception ex) { Logger.Log(ex); } |
Wenn du alle Exceptions abfangen möchtest, dann fange in deiner
Main-Methode alle Exceptions (außerdem noch das Ereignis
Application.ThreadException für andere Threads) und logge dort dann die Exception. Danach wird dann aber das Programm beendet.
Es ist keine gute Idee, einfach nur Exceptions zu fangen, ohne sie zu behandeln (auch ein Logging ist keine Behandlung)! Wenn das Programm durch einen Programmierfehler in einen ungültigen Zustand gekommen ist, dann das Programm mit evtl. einer für den Anwender verständlichen Fehlerbeschreibung beenden.
Nichts ist schlimmer, als z.B. bei einem Klick des Benutzer auf den Save-Button, einfach nur die Exception zu fangen und still weiterzuarbeiten. Der Benutzer denkt dann ja "ok, alles in Ordnung" und arbeitet dann weiter und weiter und speichert und speichert und am Ende hat er gar nichts!
(*) Für das Logging in eine Datei dann aber den "Append"-Modus aktivieren oder aber Dateinamen mittels Zeitstempel versehen.