AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

try bei for-Schleife

Ein Thema von Dyvil · begonnen am 18. Okt 2007 · letzter Beitrag vom 19. Okt 2007
Antwort Antwort
Dyvil

Registriert seit: 6. Okt 2007
14 Beiträge
 
#1

try bei for-Schleife

  Alt 18. Okt 2007, 18:31
hi, wahrscheinlich ist es nur ein kleiner Fehler, den ich auf anhieb nicht erkenne, aber ich komme nicht weiter... --> Delphi Fehlermeldung "EConvertError"

Delphi-Quellcode:
for i := 1 to 44 do begin
try
s := TEdit(FindComponent('Edit' + inttostr(i))).Text;
u := StrToInt(s);
except
        on EConvertError do begin ShowMessage('doof'); Abort; end;end;
end;
auch mit "Break" statt "Abort" kommt eine Fehlermeldung "EConverError"
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: try bei for-Schleife

  Alt 18. Okt 2007, 18:33
Delphi schlägt bei solchen Exceptions trotzdem Alarm, wenn du das Programm in der Form ohn Debugger startest, siehst du deine Messagebox.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: try bei for-Schleife

  Alt 18. Okt 2007, 18:35
oder du deaktivierst den Debugger für diese Exception
Markus Kinzler
  Mit Zitat antworten Zitat
Dyvil

Registriert seit: 6. Okt 2007
14 Beiträge
 
#4

Re: try bei for-Schleife

  Alt 18. Okt 2007, 18:37
Zitat von Dax:
Delphi schlägt bei solchen Exceptions trotzdem Alarm, wenn du das Programm in der Form ohn Debugger startest, siehst du deine Messagebox.
was genau muss ich bei Delphi aktivieren?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: try bei for-Schleife

  Alt 18. Okt 2007, 18:39
So geht's auch:
Delphi-Quellcode:
for i := 1 to 44 do begin
  s := TEdit(FindComponent('Edit' + inttostr(i))).Text;
  u := StrToIntDef(s, 0); // wenn Editfeld leer, dann Wert 0 als Default nehmen
end;
Andreas
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: try bei for-Schleife

  Alt 18. Okt 2007, 19:14
Hallo,

wenn das "try" schon im Threadtitel steht: Delphi-Referenz durchsuchenTryStrToInt wäre eine weitere Möglichkeit, das Problem ohne Exception zu lösen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: try bei for-Schleife

  Alt 19. Okt 2007, 09:14
Ein paar Worte zu Exceptions:
- diese sollten nur verwendet werden, wenn etwas Unvorhergesehenes passiert.
- Unvorhergesehen ist z.B. wenn jemand die Netzwerkleitung durchschneidet oder ein Gerät nicht verfügbar ist weil es kaputt gegangen ist.
- Unvorhersehbar ist z.B. nicht wenn ein user in ein Feld (das zu Integer gewandelt werden soll) einen Buchstaben oder nichts eingibt.
- Falscheingaben sollen im Vorhinein verhindert werden. Das nachher abzufangen mit try..except ist der falsche Weg.

Bei mir wirst Du nirgends einen EConvertError finden.
Man kann einen TMaskEdit nehmen und nur Zahlen zulassen.
Dann fragt man ab, ob in EdKundenNr wirklich was eingegeben wurde, wenn nicht wird KundenNr zu 0 oder -1.
Dann erst macht man die Umwandlung mit StrToInt.

Ebenso kann man es mit anderen Exceptions machen.

Und was noch viel wichtiger ist:
wenn man schon ein try..except hat, dann darf natürlich der except-Block nicht leer bleiben. Sonst kann ich mir das try auch schenken.

Und den Code mit try..except zuzumüllen ist auch der falsche Weg.
Es heisst nicht umsonst Exception (=Ausnahme).

Ein blödes Beispiel:
Du nimmst wahllos irgendeinen Schlüssel um die Haustüre aufzuschliessen.
Wenn dieser Schlüssel nicht passt, rennst Du dann schreiend um den Block und brüllst jedem ins Gesicht dass der Schlüssel nicht passt.
Wenn Du Dich beruhigt hast, weil Dir jemand eine geknallt hat, nimmst Du den nächsten Schlüssel.
Das gleiche Spiel, bis endlich ein Schlüssel passt.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#8

Re: try bei for-Schleife

  Alt 19. Okt 2007, 09:17
Zitat von RavenIV:
Ein blödes Beispiel:
Du nimmst wahllos irgendeinen Schlüssel um die Haustüre aufzuschliessen.
Wenn dieser Schlüssel nicht passt, rennst Du dann schreiend um den Block und brüllst jedem ins Gesicht dass der Schlüssel nicht passt.
Wenn Du Dich beruhigt hast, weil Dir jemand eine geknallt hat, nimmst Du den nächsten Schlüssel.
Das gleiche Spiel, bis endlich ein Schlüssel passt.
Ein sehr plastisches Beispiel
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08: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