Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   JCLDebug - Festestellen ob in try-except (https://www.delphipraxis.net/159941-jcldebug-festestellen-ob-try-except.html)

SirThornberry 19. Apr 2011 16:27

JCLDebug - Festestellen ob in try-except
 
Hallo,

bei JCLDebug kann man mit JclAddExceptNotifier eine Procedure registrieren welche im Fall einer Exception aufgerufen wird.
Kann man irgendwie innerhalb der registrierten Funktion feststellen ob die Exception innerhalb eines Try-Except blockes stand?
Hintergrund ist dass, das loggen des Fehlers keinen Sinn macht wenn der Fehler bewusst abgefangen wird.

[Edit]
über
Delphi-Quellcode:
ExceptFrame.HandlerInfo(ExceptObj, HandlerLocation);
(wie in einigen Beispielen gezeigt) funktioniert leider nicht da:
- dabei nicht berücksichtigt wird wenn im Stack über Message kommuniziert wird. Wenn zum Beispiel ein ShowModal in Try-Except eingefasst ist wird eine im Modal erzeugten Dialog auftretende Exception als abgefangen angesehen.
- auch alle in try-Except eingefassten Aufrufe von Application.HandleException werden als abgefangene Fehler gewertet (und von diesen Aufrufen gibt es in der VCL mehr als genug)

Deep-Sea 20. Apr 2011 09:04

AW: JCLDebug - Festestellen ob in try-except
 
Heißt das, dass du nur unbehandelte Fehler loggen möchtest. Also die, die der Nutzer auch zu sehen bekommt?
Falls ja, so ist JclAddExceptNotifier wohl nicht das richtige, sondern eher TApplicationEvents.OnException :-D

SirThornberry 20. Apr 2011 09:56

AW: JCLDebug - Festestellen ob in try-except
 
Hmm, wäre bedingt eine Lösung da Application.OnException nur auf Exceptions des Hauptthreads reagiert aber nicht auf Exceptions in anderen Threads.

himitsu 20. Apr 2011 10:01

AW: JCLDebug - Festestellen ob in try-except
 
Zitat:

Zitat von Deep-Sea (Beitrag 1096145)
sondern eher TApplicationEvents.OnException :-D

Und um an die Exceptions in Threads zu kommen, so sollte man nach dem Beenden auch die Exception des/der Thread(s) behandeln.

http://www.delphipraxis.net/150812-i...ml#post1017532

Statt anzuzeigen könnte man es ja auch an Application.OnException weiterleiten und dort mit behandeln lassen.

Deep-Sea 20. Apr 2011 10:08

AW: JCLDebug - Festestellen ob in try-except
 
Achso, Threads ... Ich logge alle Exceptions, auch die, die in einem try-except-Block abgefangen werden. Von daher habe ich gar nicht dran gedacht, dass die Lösung mit TApplicationEvents.OnException ja nur auf den Hauptthread reagiert. Sorry :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 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