Globales Exception Handling
-
Hallo,
meine anwendung wird nun einmal am tag automatisch laufen (windows scheduler). da meine anwendung mit zwei verschiedenen datenbankservern und zwei verschiedenen ftp server arbeitet kann es immer mal probleme geben.
ich habe sämtliche exceptions abgegfangen, allerdings gibst auch manchmal welche die ich nicht abgefangen habe. nun möchte ich das problem vermeiden, dass meine anwendung nicht hängen bleibt, nur weil eine exception message box angezeigt wird und niemand den okay button drückt.
gibt es eine möglichkeit das anzeigen der messageboxen von exceptions global zu unterbinden? ich will die weiterhin abfragen können, nur die automatische meldung weglassen.
ist es zusätzlich möglich beider jeder ankommenden exceptions automtisch eine info in eine log datei zu speichern?
jens
-
catch(...) (und die Punkte müssen da genau so rein). Damit können alle Exceptions abgefangen werden. Also erst alle Exceptions abfangen, wie bisher und mit dann zum Schluss mit catch(...) die bis dahin nicht abgefangenen...
[Edit] Bei catch(...) bekommst Du kein Exception-Objekt, also kannst Du nicht auswerten, welcher Fehler aufgetreten ist.
-
Jens Harms schrieb:
ich habe sämtliche exceptions abgegfangen, allerdings gibst auch manchmal welche die ich nicht abgefangen habe.
Wie darf man das verstehen? Du fängst sämtliche Exceptions ab, aber nicht alle?
Bisher dachte ich immer sämtliche = alle...Vielleicht klappt's ja auch mit einem ApplicationEvents-Objekt (Komponentenleiste unter "Zusätzlich").
Da gibt's ein Ereignis OnException. Habe ich aber auch noch nie verwendet.Gruß,
Alexander
-
Jens,
Jens Harms schrieb:
... allerdings gibst auch manchmal welche die ich nicht abgefangen habe. ... gibt es eine möglichkeit das anzeigen der messageboxen von exceptions global zu unterbinden? ich will die weiterhin abfragen können, nur die automatische meldung weglassen.
Du könntest set_terminate für ungefangene Ausnahmen verwenden. Bei Verwendung solch eines globalen Handlers wird es allerdings schwieriger in sinnvoller Weise auf Fehler zu reagieren.