![]() |
try bei for-Schleife
hi, wahrscheinlich ist es nur ein kleiner Fehler, den ich auf anhieb nicht erkenne, aber ich komme nicht weiter... --> Delphi Fehlermeldung "EConvertError"
Delphi-Quellcode:
auch mit "Break" statt "Abort" kommt eine Fehlermeldung "EConverError"
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; |
Re: try bei for-Schleife
Delphi schlägt bei solchen Exceptions trotzdem Alarm, wenn du das Programm in der Form ohn Debugger startest, siehst du deine Messagebox.
|
Re: try bei for-Schleife
oder du deaktivierst den Debugger für diese Exception
|
Re: try bei for-Schleife
Zitat:
|
Re: try bei for-Schleife
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; |
Re: try bei for-Schleife
Hallo,
wenn das "try" schon im Threadtitel steht: ![]() Gruß Hawkeye |
Re: try bei for-Schleife
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. |
Re: try bei for-Schleife
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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 by Thomas Breitkreuz