Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Exception bei exception abfangen (https://www.delphipraxis.net/21295-exception-bei-exception-abfangen.html)

Meflin 30. Apr 2004 14:12


Exception bei exception abfangen
 
Hi,
ich will so eine exception abfangen:
Delphi-Quellcode:
try begin
...
end;
except
on EIdReadTimeout do begin
  inc(timeouts);
end;
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?

*MFG*

Smokey 30. Apr 2004 14:17

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:
try
  //dein code

except
  on Exception do
  begin
    //fehlerbehandlung

  end; //fehlerbehandlungs-block

end;//try-except
<edit> Hilfe ich werde Legastheniker <edit>

Meflin 30. Apr 2004 14:25

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!

Meflin 30. Apr 2004 14:28

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;

Smokey 30. Apr 2004 15:11

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:
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;
aber ka obs daran liegt.

Meflin 30. Apr 2004 16:43

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*

Christian S. 30. Apr 2004 16:47

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;

Meflin 30. Apr 2004 16:51

Re: Exception bei exception abfangen
 
thx, es funzt! das handleallothers macht das aus den restlichen silentexceptions?

Meflin 30. Apr 2004 17:00

Re: Exception bei exception abfangen
 
achso ich habs gechecked! tuts nicht ;-)

Smokey 30. Apr 2004 17:34

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 22:41 Uhr.
Seite 1 von 2  1 2      

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