![]() |
try...except funktioniert in RAD2007 nicht
Hallo,
will Fehler bei einer StrToFloat Funktion mit einer try...except Schleife in einem Unit eines RAD Studio 2007-Programmes abfangen. Diese try...except Schleife funktioniert aber nicht. SysUtils habe ich in der uses der Unit eingetragen. Es handelt sich hierbei um ein altes Delphi7 Programm, dass ich heute in RAD Studio 2007 übernommen habe. In Delphi7 hat alles funktionieert. Hat jemand eine Idee? Danke E. B. |
Re: try...except funktioniert in RAD2007 nicht
was genau funktioniert nicht und wann tritt der Fehler auf?
|
Re: try...except funktioniert in RAD2007 nicht
Meinst du innerhalb der IDE? In der Grundeinstellung von D7 war das genauso.
BTW besser TryStrToFloat() verwenden |
Re: try...except funktioniert in RAD2007 nicht
Code?
|
Re: try...except funktioniert in RAD2007 nicht
Moin E.B.,
zunächst mal: try/except ist keine Schleife ;-) Und jetzt mal die übliche Frage (meine Kristallkugel sagt mir, dass das Problem darin besteht, dass innerhalb der IDE eine Exception angezeigt wird): Tritt das Problem innerhalb der IDE auf, oder auch, wenn Du das Programm so aufrufst? |
Re: try...except funktioniert in RAD2007 nicht
Hallo allerseits,
natürlich ist try...except keine Schleife (müde, spät...) interessant, das Problem tritt nur innerhalb der IDE auf, wenn ich die Exe so starte, geht es Der Code ist angehangen Config_Laden dient nur dazu, daß alle meine Programme das "richtige" und "falsche" Komma laden (wegen verschiedner Ländereinstellungen) (In der EB_Config sind auch alle anderen allgemeinen Einstellungen meiner Progamme enthalten, sozusage eine gemeinsame Schnittstelle von allen eigenen Progammen)
Delphi-Quellcode:
In den Projectoptions/Compilereinstellungen habe ich nichts gefunden
uses ...SysUtils...;
... procedure Config_Laden; var FConfig: TIniFile; begin FConfig := TIniFile.Create('C:\EB_SETUP\EB_Config.dat'); Komma := FConfig.ReadString('Komma', 'Komma', EmptyStr); nichtKomma := FConfig.ReadString('Komma', 'nichtKomma', EmptyStr); FConfig.Free; end; ... // hier der ProblemCode function StrToFloaten(s: string): single; var p, l: integer; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ begin if s <> '' then begin try StrToFloaten := StrToFloat(s); except begin p := pos(nichtKomma, s); l := Length(s); if p <> 0 then s := copy(s, 1, p - 1) + Komma + copy(s, p + 1, l - p); StrToFloaten := StrToFloat(s); end; end; end else StrToFloaten := 0; end; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Ich danke für Hilfe E. B. |
Re: try...except funktioniert in RAD2007 nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Wie schon oben geschrieben sind die TryStrTo<Typ> Konvertierungsfunktionen den Exception-werfenden Versionen vorzuziehen.
Ansonsten kann man die Exceptions innerhalb der IDE für die einzelnen Exception-Typen abschalten. |
Re: try...except funktioniert in RAD2007 nicht
Das ist so gewollt. Der Debugger informiert dich trotzdem, dass eine Exception aufgetreten ist. Das ist eben nur im Debug-Mode so. Trotzdem läuft nach dem kleinen Fenster dein Programm so weiter, wie du es willst: Im Except-Block.
Und Due kannst dieses Verhalten in den Projketoptionen teilweise oder ganz ausschalten. Du kannst es auch für einzelne Units abstellen. Ganz nach belieben. |
Re: try...except funktioniert in RAD2007 nicht
wo kann ich die Exceptions in der IDE abschalten?
|
Re: try...except funktioniert in RAD2007 nicht
Zitat:
aber sie werden dir fehlen, wenn du gleich alle abschaltest :zwinker: Edit: In Delphi 7 gehst du unter "Tools" --> "Debuger-Optionen" |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 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