![]() |
TApplicationEvents: OnException: mehrere Informationen
Hallo,
ich verwende TApplicationEvent und davon OnException um (hoffentlich nie) auftretende Exceptions abzufangen. Dieser werden dann in einer Log-Datei hinterlegt. Über das Event bekommt man
Delphi-Quellcode:
. Über
E: Exception
Delphi-Quellcode:
bekomm ich dann den Exceptiontext.
E.Message
Ist es möglich über dieses Event bzw. über
Delphi-Quellcode:
noch mehr Infos zu erhalten?
E
|
AW: TApplicationEvents: OnException: mehrere Informationen
In Delphi 7 noch nicht, aber in neueren Delphis, wird im Exception-Object, wärend des Creates noch mehr gespeichert.
Wie z.B. ein StackTrace und eventuell vorherige Exception. Aber zumindestens den Klassenname der Exception könntest du noch mit speichern und wenn du dir sowas wie MadExcept mit ins Programm holst, dann könnte da auch eventuell noch mehr rauskommen. [add] ich seh grad, daß für OnException das "E" aus ExceptObject geholt wird, dann könntest du dir also über ExceptAddr zumindestens auch noch die Code-Adresse besorgen, an welcher diese Exception ausgelöst wurde. Und über eventuelle Debuginfos könnte man daraus dann auf die QuellCodeZeile schließen. |
AW: TApplicationEvents: OnException: mehrere Informationen
Es gibt bestimmte Exception-Klassen, die noch etwas mehr Infos mit sich tragen.
Insbesondere sind EOleException und EOleSysError von Interesse. Mehr Info dazu: ![]() |
AW: TApplicationEvents: OnException: mehrere Informationen
Hallo,
MadExcept hab ich mir angeschaut und auch ausprobiert. Ist soweit ganz ok! - Nur etwas zu overload für mein kleines Projekt. (Nebenbei bemerkt wird mit MadExcept die Exe doppelt so groß) Mir gehts erstmal nur darum dass ich weiss wo der Fehler auftritt. Das erreiche ich mittels Sender.ClassName. |
AW: TApplicationEvents: OnException: mehrere Informationen
Bei Delphi liegen die meißten Debuginfos nicht in der EXE,
darum nimmt sich MadExcept viele Infos selber mit, damit auch auf fremden Rechnern genug Debuginfos vorhanden sind.
Delphi-Quellcode:
Aber das bringt auch nicht so viel.
if Sender is TComponent then
Name := TComponent(Sender).Name else Name := Sender.ClassName; - wenn ich in Button1Click eine Exception auslöse, dann erhalt ich darüber nur Form1 als Name. |
AW: TApplicationEvents: OnException: mehrere Informationen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz