![]() |
try ... except EConvertError
Hallo,
ich will ein string in eine currency - variabel umwandeln (Delphi7).
Delphi-Quellcode:
try fValue := strtofloat(text); except on EConvertError do begin fValue :=0; end; end; wenn text='1,23,00' ist,bricht das Programm direkt nach fValue := strtofloat(text); mit einer Exception EConvertError Fehlermeldung ab, ohne die except on EConvertError Anweisung zu beachten . WARUM wird die try Anweisung ignoriert? Danke |
Re: try ... except EConvertError
Passiert das auch, wenn Du das Programm außerhalb der IDE laufen lässt?
|
Re: try ... except EConvertError
Zitat:
|
Re: try ... except EConvertError
Liste der Anhänge anzeigen (Anzahl: 1)
Schau mal unter "Tools-Debugger-Optionen" (zumindest bei Delphi 7)
|
Re: try ... except EConvertError
Alternativ könntest du das ganze auch gleich ohne Exception machen:
Delphi-Quellcode:
if not TryStrToFloat(text, fValue) then
fValue := 0; |
Re: try ... except EConvertError
Hi,
Zitat:
Delphi-Quellcode:
Dies sollte die beste Variante sein. Extended kann zwar implizit in Currency umgewandelt werden, aber die Verwendung der speziellen Funktionen für Currency (StrToCurr, CurrToStr, ...) ist bei der Verwendung von Currency die bessere Wahl.
if not TryStrToCurr(Text, FValue) then
FValue := 0; Und natürlich, wie auch von jbg vorgeschlagen, am besten die Exception vermeiden ;) Mfg FAlter [edit] Natürlich TryStrToCurr[/edit] |
AW: try ... except EConvertError
Das ist ein super Tip, habe das gleiche Problem und die Lösung gleich umgesetzt.
Ich nehme für Integer gern die alte val funktion, da es mir idR genügt eine 0 zu haben falls ein Fehler auftritt.
Code:
if not TryStrToCurr(s, result) then result:=0;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 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