Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 2006 - Fehlerbehandlung - Event?

  Alt 19. Mär 2014, 10:18
Application.OnError oder besser TApplicationEvents.OnError,
das fängt alles ab, was in der VCL-MessageLoop landet. (also kurz bevor die Exception-Meldung angezeigt wird, welche man darüber z.B. ersetzen kann)

Und natürlich sollte man mal die Exceptions mal auswerten, welche im TThread.Execute durchrauschen,
denn die verschwinden normaler Weise im Nirvana. TThread.OnTerminate und dort das TThread.FatalException (ist eine Exception) auswerten.

Exceptions im Synchronize werden vom Hauptthread an den aufrufenen Thread durchgereicht und dort erneut ausgelöst.

In WinAPI-Threads, ohne die RTL drumrum, auch in HauptThread ohne die VCL drumrum (drum hat in halbwegs aktuellen Delphis die Konsolenanwendung-Vorlage ein Try-Except schon eingebaut)

Und warum Delphi die Exceptions abfängt:
Windows schießt die komplette Anwendung ohne Fehlemeldung radikal ab, wenn Exceptions unbehandelt bis zum Windows (dahin, wo der Thread gestartet wurde) durchrauschen. (nur ein Logeintrag in der ereignisanzeige)



Oder man wendet sich direkt an die Exceptionbehandlung.

Oder man verwendet ein Exceptionsbehandlungstool (z.B. EurekaLog)
Die übernehmen, wen es eingestellt ist, auch das Loggen des (unbehandelten) Fehler oder gar aller Fehler (auch der via Try-Except abgefangenen) und der kann die Logmeldung auch verschicken (z.B. via eMail)
$2B or not $2B

Geändert von himitsu (19. Mär 2014 um 10:24 Uhr)
  Mit Zitat antworten Zitat