Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bei Fehler einfach weitermachen? (https://www.delphipraxis.net/26945-bei-fehler-einfach-weitermachen.html)

mirko2000 1. Aug 2004 14:27


Bei Fehler einfach weitermachen?
 
Gibt es in Delphi einen try-Block der bei einem auftretenden Fehler den Fehler einfach überspringt und einfach weitermacht als ob nicht passiert wäre? Also so eine Art
Code:
ON ERROR RESUME NEXT
aus Visual Baisc?!

Beispiel:

Delphi-Quellcode:
try
begin
  edit1.text := 'hallo'; // Wenn in dieser Zeile ein Fehler auftritt
  edit2.text := 'danke'; // diese Zeile hier auch noch ausführen
end

bjacke 1. Aug 2004 14:37

Re: Bei Fehler einfach weitermachen?
 
Es gibt da einen try-finally Block:

Delphi-Quellcode:
try
   edit1.text := 'hallo'; // Wenn in dieser Zeile ein Fehler auftritt
   edit2.text := 'danke'; // diese Zeile hier auch noch ausführen
finally
   Edit1.free;
   Edit2.free;
   End;
Ich übernehme kein Haftung für die Richtigkeit! :mrgreen:, aber wo soll den bei so einer Übergabe ein Fehler auftreten?

Sharky 1. Aug 2004 14:40

Re: Bei Fehler einfach weitermachen?
 
Hai mirko2000,

einfach Try-Finally

Delphi-Quellcode:
  try
    edit1.text := 'hallo'; // Wenn in dieser Zeile ein Fehler auftritt
  finally
    edit2.text := 'danke'; // diese Zeile hier auch noch ausführen
  end;

bjacke 1. Aug 2004 14:41

Re: Bei Fehler einfach weitermachen?
 
Oky, jetzt hat es auch bei mir klick gemacht :lol: !

DelphiFreund 1. Aug 2004 14:41

Re: Bei Fehler einfach weitermachen?
 
Wenn du den Fehler behandeln willst, oder darauf reagieren, oder was auch immer, kannst du auch try..except nehmen.

mirko2000 1. Aug 2004 14:50

Re: Bei Fehler einfach weitermachen?
 
Zitat:

Zitat von bjacke
aber wo soll den bei so einer Übergabe ein Fehler auftreten?

Das war auch nur ein kleines Beispiel.


Ich hab ein Problem mit einer Datenbankanbindung (Benutze die Zeos-Komponenten):
Delphi-Quellcode:
zeoSQL.SQL.Text := 'SELECT feld1, feld2 FROM tabelle';
zeoSQL.Active := true;
zeoSQL.First;

for i := 1 to 9 do
begin
  ergebnis[i, 1].Text := zeoSQL.Fields[0].Value;
  ergebnis[i, 2].Text := zeoSQL.Fields[1].Value;
  zeoSQL.Next;
end;
Und zwar kommt immer dann eine Fehlermeldung wenn im feld1 oder feld2 in der Datenbank einen Null-Wert drinstehen haben (was auch verständlich ist). Ich könnte zwar davor mit ner if-Abfrage überprüfen ob ein null-Wert drinsteht aber das ist nur ein kleiner Auszug aus meinem Quellcode.

Es sollte doch irgendwie Möglich sein, einfach einen Fehler zu überspringen, oder?

Sharky 1. Aug 2004 14:58

Re: Bei Fehler einfach weitermachen?
 
Hai mirko2000,

so sollte es überhaupt keinen Fehler geben wenn Null in dem Feld steht.

Delphi-Quellcode:
.
.
for i := 1 to 9 do
begin
  ergebnis[i, 1].Text := zeoSQL.FieldByName ('feld1').AsString;
  ergebnis[i, 2].Text := zeoSQL.FieldByName ('feld2').AsString;
  zeoSQL.Next;
end;

mirko2000 1. Aug 2004 15:03

Re: Bei Fehler einfach weitermachen?
 
Danke! Hat geklappt! :hello:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 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