Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi NICHT bei Exceptions im try..except Block anhalten. (https://www.delphipraxis.net/73665-nicht-bei-exceptions-im-try-except-block-anhalten.html)

Klaus01 21. Jul 2006 13:59

Re: NICHT bei Exceptions im try..except Block anhalten.
 
@Khabarakh
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von Klaus01
Hallo,

schau Dir mal bitte den Thread an, besonders Beitrag 3

Hab ich. Aber was bitte hat das mit dem Thema zu tun?

@BeerBear: Wechsel zu .Net :duck: . Mit dem Delphi-Debugger hast du AFAIK keine Chance.

Das hier:
Die Exception wird ausgelöst und, solange Du den Code in der IDE ausführst, von der IDE abgefangen und von Debugger ausgegeben.
Führst Du diesen Code nun als Kompilat aus (exe Datei) wird Dein Fehler richtig ausgegeben.

Den selben Effekt kannst Du erreichen, wenn Du in der IDE die Delphi Exceptions abschaltest (wie Kroko1999 unter Punkt d bereits erwähnt hat)


Grüße
Klaus

BeerBear 21. Jul 2006 14:09

Re: NICHT bei Exceptions im try..except Block anhalten.
 
Zitat:

Die Exception wird ausgelöst und, solange Du den Code in der IDE ausführst, von der IDE abgefangen und von Debugger ausgegeben.
Führst Du diesen Code nun als Kompilat aus (exe Datei) wird Dein Fehler richtig ausgegeben.

Den selben Effekt kannst Du erreichen, wenn Du in der IDE die Delphi Exceptions abschaltest (wie Kroko1999 unter Punkt d bereits erwähnt hat)
Schön, dann bekomme ich zwar mit, dass eine Exceptioin aufgetreten ist, jedoch nicht WO.

Ich ziehe also als Fazit, dass es nicht möglich ist. Jedenfalls unter Delphi 3.

@Khabarakh
Ich kann mir die Version leider nicht aussuchen. Ich arbeite bestimmt nicht freiwillig mit Delphi 3.

EDatabaseError 21. Jul 2006 14:11

Re: NICHT bei Exceptions im try..except Block anhalten.
 
also nochmal zum mitschreiben du willst noicht das delphi den fehler brint willst aber wissen wo der Fehler war oder versteh ich da was falsch.

Unter D3 kann man ausschalten das Delphi seine Exception Meldungen bringt. Weiß es grad nicht auswendig könnte aber bei bedarf nachschauen.

Mfg
Tobi

BeerBear 21. Jul 2006 14:17

Re: NICHT bei Exceptions im try..except Block anhalten.
 
@EDatabaseError:
Zettel und Stift bereithalten.

Der Debugger soll anhalten an der Stelle, an der eine Exception auftritt.
Das soll er aber nicht tun, wenn die Exception in einem try..except Block auftritt.

Ausschalten lässt dich das "Bei Exception anhalten" übrigends unter
Tools->Umgebungsoptionen->Vorgaben->Bei Exception anhalten.

sakura 21. Jul 2006 14:50

Re: NICHT bei Exceptions im try..except Block anhalten.
 
Zitat:

Zitat von BeerBear
Ich ziehe also als Fazit, dass es nicht möglich ist. Jedenfalls unter Delphi 3.

Das geht in keiner Version, da in dem Moment, wo die Exception auftritt, der Debugger nicht weiß, ob er sich in einem try...except-Block befindet. Klingt komisch, is aber so.

...:cat:...

Khabarakh 21. Jul 2006 14:53

Re: NICHT bei Exceptions im try..except Block anhalten.
 
Zitat:

Zitat von BeerBear
Ich kann mir die Version leider nicht aussuchen. Ich arbeite bestimmt nicht freiwillig mit Delphi 3.

Hätte mich auch gewundert, wenn ihr mal schnell 600.000 Zeilen Code auf eine neue Platform übertragen könntet ;) . Deshalb auch das ":duck:".
Zitat:

Zitat von BeerBear
@EDatabaseError:
Zettel und Stift bereithalten.

Es haben nun schon 4 Personen dein wirklich ausreichend geschildertes Problem fehlinterpretiert, davon 2 sogar nach deiner 2. Erklärungs-Version (#7). Glaubst du wirklich noch an Besserung nach dem dritten Versuch :stupid: ?

BTT: Peinhard hat einen möglichen Workaround beschrieben. Aber selbst wenn du den Callstack bekommen kannst, fehlen dir immer noch wichtige Informationen wie Variablen und Parameter. Zwar kannst du nun den geworfenen Exceptiontyp wieder abfangen lassen, aber wenn dieser auch davor in try-Blöcken auftritt, hast du ein wirkliches Problem. Da kann man eigentlich nur noch raten, vor dem nächsten Projekt einen besseren Debugger zu suchen.

inherited 21. Jul 2006 14:58

Re: NICHT bei Exceptions im try..except Block anhalten.
 
Zitat:

Zitat von andreash
...Exceptions sollten nur in Ausnahmefällen auftreten...

Da kennst du aber die Jungs von Indy schlecht ;)
Stichwort "Connection closed gracefully"

BeerBear 21. Jul 2006 16:16

Re: NICHT bei Exceptions im try..except Block anhalten.
 
Zitat:

Glaubst du wirklich noch an Besserung nach dem dritten Versuch ?
Nicht wirklich, aber wer fragt, bekommt eben Antwort.

Zitat:

...Exceptions sollten nur in Ausnahmefällen auftreten...
Stimmt, aber die meisten Exceptions innerhalb try..except Blöcken treten auch in den Units von zugekauften Komponenten auf. Sind also nicht auf unserem Mist gewachsen.

@Khabarakh
Der Aufwand, für Peinhard's Workaround steht leider in keinem Verhältnis zum Nutzen. Also werde ich wohl weiterhin ein paar Meldungen wegclicken. Was nicht geht, geht eben nicht.

Trotzdem Danke an alle, die helfen wollten. :dp:

Ralf Kaiser 21. Jul 2006 20:12

Re: NICHT bei Exceptions im try..except Block anhalten.
 
Halli Hallo,

Zitat:

Zitat von BeerBear
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?

Es gibt da eine Möglichkeit...

Zitat:

Zitat von BeerBear
Es handelt sich bei mir um Delphi 3

... ob die aber schon in D3 vorhanden war weiss ich wirklich nicht mehr.

Also:

Irgendwo im Quelltext vor der Stelle an der die Exception stattfinden wird einen Breakpoint setzen. Dann mit der rechten Maustaste auf den roten Breakpoint-Punkt klicken und "Breakpoint Eigenschaften" auswählen.

In den Eigenschaftsfenster auf "Erweitert" klicken.
Dann "Anhalten" deaktivieren
Dann "Exceptions ab hier ignorieren" (kann auch etwas aners beschriftet sein) aktivieren

Irgendwo im Quelltext nach der Stelle an der die Exception stattfinden wird einen Breakpoint setzen. Dann mit der rechten Maustaste auf den roten Breakpoint-Punkt klicken und "Breakpoint Eigenschaften" auswählen.

In den Eigenschaftsfenster auf "Erweitert" klicken.
Dann "Anhalten" deaktivieren
Dann "Exceptions ab hier ignorieren" (kann auch etwas aners beschriftet sein) deaktivieren
Dann "Exceptions ab hier behandeln" (kann auch etwas aners beschriftet sein) aktivieren

Das ganze ist so lange wirksam wie die beiden Breakpoints gesetzt sind.

Wie gesagt, ich weiss wirklich nicht mehr ob diese Möglichkeit schon unter Delphi 3 existierte. Da musst du schon nachsehen.

Ciao,
Ralf


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz