Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Trotz Exception programm weiterlaufen lassen (https://www.delphipraxis.net/167023-trotz-exception-programm-weiterlaufen-lassen.html)

SyntaxXx 9. Mär 2012 16:52

Trotz Exception programm weiterlaufen lassen
 
Nabend Leute,

und zwar habe ich eine kleine Frage.
Wie kann ich es erreichen, dass mein Tool trotz exception weiter läuft.

Ich habe folgendes vor:
Ich möchte von einer Seite verschiedene Quelltexte laden.
Sprich die URL ist wie folgt aufgebaut = www.seite.de/threadid=

Und jetzt möchte ich mit einer Schleife einfach an threadid=i setzen.
Also das i immer um 1 erhöht wird.

Jetzt ist nur die Sache, dass ich eine Fehlermeldung bekomme, wenn es eine ID nicht gibt.
Wie kann ich das nun am besten machen, dass wenn eine exception auftritt, einfach i um 1 erhöht werden soll und das programm weiter macht?

Geht das überhaupt?

Bummi 9. Mär 2012 17:00

AW: Trotz Exception programm weiterlaufen lassen
 
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
var
 i,z,e:Integer;
begin
z := 0;
for I := 1 to 100 do
  begin
      Memo1.Lines.Add(IntToStr(i));
     try
      e := i div z;
     except
       ON E:Exception do Memo2.Lines.Add(E.Message);
     end;
  end;
end;

Popov 9. Mär 2012 17:09

AW: Trotz Exception programm weiterlaufen lassen
 
Zwei Punkte. Punkt 1:
Delphi-Quellcode:
 try
   //
 except
   //
 end;
Was du zwischen Except und End machst, also reagierst oder eine Kommentarzeile einfügst, bleibt deine Sache. Mit Except fängst du die Fehlermeldung ab, aber, nun Punkt 2:

In der IDE kommt sie dennoch vor, es seiden du schaltest es ab, d. h. trotz Except kommt die Meldung. Im späteren Programm nicht.

SyntaxXx 9. Mär 2012 17:34

AW: Trotz Exception programm weiterlaufen lassen
 
Ich glaube ich habe mich ein wenig falsch ausgedrückt oder ich verstehe es nicht xD

Also, wie ich Exceptions abfange ist mir bewußt xD
Aber sobald die Exception auftritt, bricht das Tool ja ab und führt das aus, was ich im Falle einer Exception eben gesagt habe.
Ich möchte mir aber jetzt nicht die Meldung ausgeben lassen, sondern einfach nur, dass z.B. i um 1 erhöht wird und die Schleife weiter macht.

In dem von Bummi aufgeführtem Code, wird ja jetzt nur die Exception agefangen und das Tool bricht die Berechnung ab.
Ich möchte aber, dass enfach nur mein Zähler i geändert wird aber trotzdem alles weiter macht.

Könnte ich nicht einfach das Auslesen des Quelltextes in eine Funkion schreiben, und im Falle einer Exception wird i ein neuer Wert zugewiesen und die Funktion neu aufgerufen?

DeddyH 9. Mär 2012 17:55

AW: Trotz Exception programm weiterlaufen lassen
 
Man könnte so etwas ja auch einmal ausprobieren. Es ist zwar im Allgemeinen kein guter Stil, einen except-Block leer zu lassen, aber versuch mal
Delphi-Quellcode:
for i := 1 to 100 do
  begin
    URL := Format('http://www.seite.de/threadid=%d', [i]);
    try
      OpenURL;
    except
    end;
  end;

Popov 9. Mär 2012 18:21

AW: Trotz Exception programm weiterlaufen lassen
 
Zitat:

Zitat von SyntaxXx (Beitrag 1155688)
Ich glaube ich habe mich ein wenig falsch ausgedrückt ...

Also eigentlich meine ich dich richtig verstanden zu haben. Ich hab ja geschrieben, dass das was du zwischen Except und End machst, deine Sache bleibt. Du mußt nicht auf die Meldung reagieren.

Aber der eigentliche Punkt ist eher der Punkt 2. Der besagt, dass du dir bewußt sein solltest, dass trotz eines leeren Except Blocks, es in der IDE wohl eine Meldung gibt. Wenn du keine Meldung willst, dann schalte die in der IDE ab oder führe das Programm direkt aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.

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