![]() |
NICHT bei Exceptions im try..except Block anhalten.
Moin!
Wie allgemein bekannt, bietet Delphi ja die Option "Bei Exceptions anhalten". Allerdings tut Delphi dies auch unerwünschterweise innerhalb von try..except Blöcken. Gibt es eine Möglichkeit dies zu verhindern? Danke schonmal! [Edit: Es handelt sich bei mir um Delphi 3] |
Re: NICHT bei Exceptions im try..except Block anhalten.
Hallo,
wieso möchtest du das verhindern? :gruebel: Du benutzt doch nicht etwa Exceptions für die Programmkontrolle? :wink: Exceptions sollten nur in Ausnahmefällen auftreten, also am besten gar nicht. Wenn die Exceptions nerven, ist das ein Hinweis darauf, den Programmcode zu überarbeiten und die Exceptions mit Abfragen zu umgehen. PS: In Delphi 7 lassen sich Breakpoints so einrichten, dass von bestimmten Programmzeilen aus Delphi nicht mehr bei Exceptions stoppt. |
Re: NICHT bei Exceptions im try..except Block anhalten.
naja es geht so:
Delphi-Quellcode:
Gut ist das aber nicht!
try
hier dann der fehlerhafte code except on e:Exception do begin // hier sollte man die exception ausweten end; end |
Re: NICHT bei Exceptions im try..except Block anhalten.
@arbu man: Der Debugger schreit aber trotzdem.
|
Re: NICHT bei Exceptions im try..except Block anhalten.
Nein, sein Problem ist folgendes: Delphi gibt eine Warnmeldung aus, wenn eine Exception ausgelöst wird.
Auch, wenn man sie mit try-except fängt. Allerdings ist das nur im Debugger so, wenn das ganze ohne Debug-Hook läuft geht es. Also, entweder die EXE direkt starten oder irgendwo nach ner Option zum Ausschalten des Debuggers suchen, wenn es die irgendwo geben sollte. |
Re: NICHT bei Exceptions im try..except Block anhalten.
Zitat:
|
Re: NICHT bei Exceptions im try..except Block anhalten.
Also nochmal:
Ich möchte schon, dass der Debugger bei Exceptions ganz normal anhält und mir auch zeigt, welche Zeile diese auslöst. Aber eben nicht, wenn diese Exception bereits in einem try..except Block gefangen wird. Bei dem zu debuggenden Programm handelt es sich um mehr als 600.000 Zeilen. Da kommen schon einige Exceptions innerhalb try..except Blöcken zu stande. Ich möchte mich aber beim Debuggen auf die Exceptions konzentrieren, die noch nicht abgefangen werden. |
Re: NICHT bei Exceptions im try..except Block anhalten.
Hallo,
schau Dir mal bitte den Thread an, besonders Beitrag 3 ![]() Ich weiß allerdings nicht ob es diese Option schon bei Delphi 3 gibt. Grüße Klaus |
Re: NICHT bei Exceptions im try..except Block anhalten.
Zitat:
@BeerBear: Wechsel zu .Net :duck: . Mit dem Delphi-Debugger hast du AFAIK keine Chance. |
Re: NICHT bei Exceptions im try..except Block anhalten.
Es gibt (ab D5?) auch die Möglichkeit, bestimmte Exceptions vom Debugger ignorieren zu lassen (Debugger-Optionen). Das hilft bei der eigentlichen Fragestellung hier aber auch nicht weiter. Da würde3 ich evt mal den Weg probieren, 'Bei Exceptions anhalten' ganz auszuschalten und einen Handler auf Application-Ebene (Application.OnException) zu schreiben, wo die nicht behandelten Exceptions dann zB mit ShowMessage oä an die Oberfläche gebracht werden oder auch einfach nur 'Pseudocode' mit einem Breakpoint (und evt mit einem $IFDEF DEBUG-Konstrukt). Dann muß man allerdings auch den Aufrufstack zu Hilfe nehmen, um zu sehen 'wo das herkommt'. Das ist uU auch nicht immer ganz genau bzw 'zielführend', evt muß man dann die entsprechende Aktion auch noch mal mit eingeschaltenem Anhalten wiederholen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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