AGB  ·  Datenschutz  ·  Impressum  







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

try ... except EConvertError

Ein Thema von markbolten · begonnen am 30. Sep 2007 · letzter Beitrag vom 20. Aug 2011
Antwort Antwort
markbolten

Registriert seit: 5. Jun 2005
25 Beiträge
 
#1

try ... except EConvertError

  Alt 30. Sep 2007, 10:40
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: try ... except EConvertError

  Alt 30. Sep 2007, 10:42
Passiert das auch, wenn Du das Programm außerhalb der IDE laufen lässt?
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
markbolten

Registriert seit: 5. Jun 2005
25 Beiträge
 
#3

Re: try ... except EConvertError

  Alt 30. Sep 2007, 10:51
Zitat von DeddyH:
Passiert das auch, wenn Du das Programm außerhalb der IDE laufen lässt?
Nein, kann man dies auch während/in der IDE erreichen ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: try ... except EConvertError

  Alt 30. Sep 2007, 10:58
Schau mal unter "Tools-Debugger-Optionen" (zumindest bei Delphi 7)
Miniaturansicht angehängter Grafiken
debugger-optionen_144.png  
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
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: try ... except EConvertError

  Alt 30. Sep 2007, 11:02
Alternativ könntest du das ganze auch gleich ohne Exception machen:

Delphi-Quellcode:
if not TryStrToFloat(text, fValue) then
  fValue := 0;
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#6

Re: try ... except EConvertError

  Alt 30. Sep 2007, 13:30
Hi,

Zitat von markbolten:
ich will ein string in eine currency - variabel umwandeln (Delphi7).
Delphi-Quellcode:
if not TryStrToCurr(Text, FValue) then
  FValue := 0;
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.

Und natürlich, wie auch von jbg vorgeschlagen, am besten die Exception vermeiden

Mfg
FAlter

[edit] Natürlich TryStrToCurr[/edit]
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von arc
arc

Registriert seit: 6. Nov 2009
Ort: Elbflorenz
62 Beiträge
 
FreePascal / Lazarus
 
#7

AW: try ... except EConvertError

  Alt 20. Aug 2011, 00:36
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;
  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:32 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