![]() |
Exception bei exception abfangen
Hi,
ich will so eine exception abfangen:
Delphi-Quellcode:
wenn ich das mache bekomm ich allerdings nen fetten fehler. zu erwähnen ist dass das ganze in einem thread läuft und der fehler michs ehr an eine zugriffsverletzung erinnert :roll: . was gibts da zu beachten bzw woran liegt der fehler?
try begin
... end; except on EIdReadTimeout do begin inc(timeouts); end; *MFG* |
Re: Exception bei exception abfangen
Lass mal nach try das begin - end weg
und mach dafür am Ende des Codes noch ein end hin. Syntax für Exceptions in dem Fall :
Delphi-Quellcode:
<edit> Hilfe ich werde Legastheniker <edit>
try
//dein code except on Exception do begin //fehlerbehandlung end; //fehlerbehandlungs-block end;//try-except |
Re: Exception bei exception abfangen
nein, hat nix geholfen. erstens wird jetzt nur noch die eine exception abgefangen und keine andere mehr und der alte fehler kommt auch noch. ich wollte halt eben nur bei der speziellen exception was machen und alle anderen in silentexceptions verwandeln!
|
Re: Exception bei exception abfangen
hier mal der nicht funzende code:
Delphi-Quellcode:
try
password := pwtotest; connect(connection_timeout); if connected = true then begin with form1 do begin ShowMessage(password+' was right!'); end; end; interlockedexchangeadd(@form1.donegauge.progress,1); interlockedexchangeadd(tickcount,1); except on EIdReadTimeout do begin inc(timeouts); end; interlockedexchangeadd(@form1.donegauge.progress,1); interlockedexchangeadd(tickcount,1); end; |
Re: Exception bei exception abfangen
Hm nunja ich bin mir nicht sicher, ob es geht, nach dem "on DeineException do begin-end" noch code auszuführen.
Zumindest habe ich sowas noch nie gesehen. Da du aber die 2 zeilen code auf jedenfall auszuführen scheinst (sowohl bei keinem Fehler als auch bei Fehler) würde ich das mit finally machen. also:
Delphi-Quellcode:
aber ka obs daran liegt.
try
try password := pwtotest; connect(connection_timeout); if connected = true then begin with form1 do begin ShowMessage(password+' was right!'); end; end; except on EIdReadTimeout do begin inc(timeouts); end; end; finally interlockedexchangeadd(@form1.donegauge.progress,1); interlockedexchangeadd(tickcount,1); end; |
Re: Exception bei exception abfangen
nein daran liegts nicht, es geht nämlich nicht nach dem on blabla noch was auszuführen ;-) wenn ich die auskommentiere kommt der fehler immernoch. aber das mit dem finally werd ich versuchen (ich dacht immer man könnt nur entweder except oder finally nehmen)
*MFG* |
Re: Exception bei exception abfangen
Um "restliche" Exceptions zu behandeln, hält die Delphi-Hilfe folgendes bereit:
Delphi-Quellcode:
try
... except on EZeroDivide do HandleZeroDivide; on EOverflow do HandleOverflow; on EMathError do HandleMathError; else HandleAllOthers; end; |
Re: Exception bei exception abfangen
thx, es funzt! das handleallothers macht das aus den restlichen silentexceptions?
|
Re: Exception bei exception abfangen
achso ich habs gechecked! tuts nicht ;-)
|
Re: Exception bei exception abfangen
Aber du checkst das schon ausserhalb der Entwicklungsumgebung oder hast das stoppen bei Exceptions abgestellt?
wenn nicht : :twisted: :twisted: :twisted: :twisted: Wenn doch : hm komisch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 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