![]() |
Schleifenabbruch durch exception verhindern
mein code geht ungefährt wie folgt
Delphi-Quellcode:
for i := 0 to MaxLoop do
begin try aClass := TClass.Create(...) aClass.DoA; AClass.Do...; if AClass.result >0 then begin /// Ergebnisse auswerten .... .... end; finally AClass.Free; end; end; AClass umfasst einige 1000 Zeilen Code . Aktuell wirft AClass mit bestimmten Daten gefüttert eine Exception, vermutlich greife ich in der komplexen Klasse A auf ein internes Feld mit einem falschen Index zu. Technisch bekomme ich dieses Problem nicht schnell gelöst. Könnte ich als kurzfristige Lösung alle Exceptions ignorieren und die Schleife trotzdem durchlaufen und komplett abarbeiten. |
AW: Schleifenabbruch durch exception verhindern
Eine einzige try-finally um 1000 Zeilen Code ist natürlich ein echtes Problem, da wirst wohl keine "einfache kurzfristige" Lösung finden. Die Schleife wird ja auf jeden Fall komplett durchlaufen, nur der riesige try-finally-Block halt nicht.
|
AW: Schleifenabbruch durch exception verhindern
Zitat:
So könnte man es lösen:
Delphi-Quellcode:
for i := 0 to MaxLoop do begin
aClass := TClass.Create(); try try aClass.DoA; AClass.Do; if aClass.result > 0 then begin /// Ergebnisse auswerten end; except { Bug noch diesen Monat fixen! } if Now > EncodeDate(2015, 1, 31) then raise; end; finally aClass.Free; end; end; |
AW: Schleifenabbruch durch exception verhindern
Hopsa, mit try-except verwechselt ... peinlich.
|
AW: Schleifenabbruch durch exception verhindern
Zitat:
Delphi-Quellcode:
Mavarik
try
FinallyAndExcept end; |
AW: Schleifenabbruch durch exception verhindern
wat :roteyes:
|
AW: Schleifenabbruch durch exception verhindern
Zitat:
Delphi-Quellcode:
Wobei ich mir da sogar vorstellen kann, daß man über die Anordnung try - except - finally oder try - finally - except auch festlegen kann, ob der except- oder der finally-Code erst ausgeführt werden soll. Aber ehrlich gesagt tun es ja auch die beiden geschachtelten try-Blöcke.
try
... except ... finally ... end; |
AW: Schleifenabbruch durch exception verhindern
wie oft hat man
Delphi-Quellcode:
besser ein
try
try except end; finally end;
Delphi-Quellcode:
Dat is nen Featurerequst @EMBT
try
... FinallyAndExcept end; |
AW: Schleifenabbruch durch exception verhindern
In Java gibt es bspw.
Code:
try {
// Stuff } catch(IOException e) { System.out.println("Exception: "); e.printStackTrace(); } finally { // Stuff } Das zwingend in try..except und try..finally aufzusplitten ist eins der wenigen Dinge die ich in Pascal irgendwie schöner als anderswo finde. :thumb: Liegt wahrscheinlich an der Einrückung, man sieht so deutlicher was auf jeden Fall abläuft und was nur im Fehlerfall. In Javas try..catch..finally sieht das alles gleichberechtigt aus. |
AW: Schleifenabbruch durch exception verhindern
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 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