Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TApplicationEvents: OnException: mehrere Informationen (https://www.delphipraxis.net/154161-tapplicationevents-onexception-mehrere-informationen.html)

Helmi 30. Aug 2010 17:14

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:
E: Exception
. Über
Delphi-Quellcode:
E.Message
bekomm ich dann den Exceptiontext.
Ist es möglich über dieses Event bzw. über
Delphi-Quellcode:
E
noch mehr Infos zu erhalten?

himitsu 30. Aug 2010 17:32

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.

shmia 30. Aug 2010 17:43

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: Ole-Exceptions verarbeiten & anzeigen

Helmi 30. Aug 2010 18:01

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.

himitsu 30. Aug 2010 18:18

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:
if Sender is TComponent then
  Name := TComponent(Sender).Name
else Name := Sender.ClassName;
Aber das bringt auch nicht so viel.
- wenn ich in Button1Click eine Exception auslöse, dann erhalt ich darüber nur Form1 als Name.

Helmi 30. Aug 2010 19:04

AW: TApplicationEvents: OnException: mehrere Informationen
 
Zitat:

Zitat von himitsu (Beitrag 1046151)
- wenn ich in Button1Click eine Exception auslöse, dann erhalt ich darüber nur Form1 als Name.

Aber immerhin etwas. Zuvor hatte ich nur den Meldungstext


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