AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ungültige Gleitkommaoperaion trotz Try Except Block
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültige Gleitkommaoperaion trotz Try Except Block

Ein Thema von Oracle · begonnen am 14. Jan 2010 · letzter Beitrag vom 14. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
Oracle
(Gast)

n/a Beiträge
 
#1

Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 11:23
Hey Leute, ich steh vor einem Rätsel.

Ich erhalte in meinem Programm eine Exception (ungültige Gleitkommaoperation) obwohl ich den Anweisung, die diese Exception auswirft in einem try..except Block steht.
"Bei Sprach-Exceptions benachrichtigen ist schon ausgeschaltet". Auch wenn ich das Programm nicht aus der exe starte kommt die Exception.
Dann habe ich zusätzlich MadExcept eingeschaltet, welches ebenfalls trotz try..except anschlägt. Ich habe mal den Screenshot von MadExcept angehängt.

Die genaue Zeile in der die Exception ausgeworfen wird, ist ein Aufruf von Chart.Repaint der TeeChart Komponente.

Ich hoffe ihr könnt mir helfen, ich komme an dieser Stelle einfach nicht weiter.
Miniaturansicht angehängter Grafiken
exception_851.png  
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 11:53
Hallo Oracle,

zeige doch bitte mal den Code einschließlich des try except Blocks und der Repaint Anweisung.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#3

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 12:29
Hier der Ausschnitt an dem das Problem auftritt. Das ganze Programm hat mehrere 10000 Zeilen, so dass ich nicht weiss was ich daraus alles extrahieren soll, um den Fehler besser auffindbar zu machen.

Delphi-Quellcode:
    if length(XValues) > 0 then
    begin
      try
        Chart.Series[0].XValues.Value := TChartValues(XValues);
        Chart.Series[0].XValues.Count := high(XValues);
        Chart.Series[0].XValues.Modified := true;
        Chart.Series[0].YValues.Value := TChartValues(YValues);
        Chart.Series[0].YValues.Count := high(YValues);
        Chart.Series[0].YValues.Modified := true;
        Chart.Repaint; <-- Hier tritt der besagt Fehler auf.
      except

      end;
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 13:08
Hi,

ich bin mir jetzt nicht ganz sicher, aber ich glaube, dass kommt daher:
Ruft eine Methode in einem try/except-Block eine Methode auf, die ihren eigenen Code nicht mittels try/except kapselt, und eine Exception verursacht, so wird diese auch geworfen.

Bsp.:
Delphi-Quellcode:
procedure DoIt;
begin
  1000/0;
end;

procedure TryDoIt;
begin
  try
    DoIt;
  except end;
end;
In diesem Beispiel wird glaub ich eine Exception geworfen. Das entspricht deinem Aufruf Repaint. Ich bin mir nur nicht mehr sicher ob das generell so ist oder nur, wenn die aufgerufenen, Exception werfende Methode in einer anderen Unit liegt, die nur noch als dcu dazugelinkt wird.

Gruß Oki
42
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 13:30
Hallo Oki,

eine Exception wird, wenn Sie in einer Methode nicht abgefangen wird, an den Rufer weitergeleitet.

Das dürfte also nicht die Ursache sein.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 13:39
Hmm wenn du das sagst, dann glaube ich das auch. Ich kann mich aber duster daran erinnern, dass ich so was auch mal hatte (vor langer Zeit). Kann mich aber nicht mehr genau erinnern was da los war. War aber noch zu D5-Zeiten.

Naja, vielleicht kennt ja noch jemand anderes das Problem und hat eine aktuelle Lösung parat.

Und du bist dir sicher, dass es auch nicht mit einer gelinkten dcu ohne try-Block zu tun haben kann?

Gruß oki

[edit = das gröbste Deutsch korrigiert]
42
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 14:04
Hallo,

was passiert,
wenn du folgendes machst

Delphi-Quellcode:
if length(XValues) > 0 then
    begin
      try
(*
        Chart.Series[0].XValues.Value := TChartValues(XValues);
        Chart.Series[0].XValues.Count := high(XValues);
        Chart.Series[0].XValues.Modified := true;
        Chart.Series[0].YValues.Value := TChartValues(YValues);
        Chart.Series[0].YValues.Count := high(YValues);
        Chart.Series[0].YValues.Modified := true;
*)

        Chart.Repaint; <-- Hier tritt der besagt Fehler auf.
      except

      end;
Und dann immer eine Zeile mehr reinbringen

Es könnte aber auch daran liegen,
dass Repaint nicht benutzt werden darf (gibt es Invalidate ?)

Ausserdem rpüfst du zwar length(XValues),
arbeitest aber auch mit YValues.

Ich würde mal prüfen, ob die Werte gültig sind.


Heiko
Heiko
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#8

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 14:25
Was ich noch dazu schreiben sollte ist:
Normalerweise funktioniert der Code reibungslos. Und das schon seit langem.
Ich habe hier eine Software mit der ich Geräte anspreche und auslese.

Neu ist jetzt: Bisher gab es für unsere verschiedenen Gerätetypen immer eine eigenen Software.
Da sich die einzelnen Softwaren (?) untereinander fast komplett gleichten, führe ich jetzt eine Verschlankungskur durch.
Nun soll es nur noch eine Software für alle Geräte geben.
Das Problem tritt nun an der Stelle auf, wenn ich während die Software läuft das Gerät welches aktuell verwendet wird geändert wird.

Beispiel:
Software wird mit Gerätetyp 1 gestartet.
Während die Software läuft soll die Software auf Gerät 2 überschwenken. Quasi: Gerät 1 deinitialisieren und Gerät 2 initialisieren. Danach Softwareoberfläche entsprechend den Geräteparametern anpassen
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#9

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 14:42
@hoika
es gibt übrigens auch Chart.Invalidate.
Was bedeutet das für mich?
Darf ich chart.repaint dann nicht aufrufen?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Ungültige Gleitkommaoperaion trotz Try Except Block

  Alt 14. Jan 2010, 15:16
auch wenn man invalidate benutzt und danach alles reibungslos funzt erklärt das noch nicht die Exception im Block. Somit sollte das nach
Zitat von MrSpock:
Hallo Oki,

eine Exception wird, wenn Sie in einer Methode nicht abgefangen wird, an den Rufer weitergeleitet.

Das dürfte also nicht die Ursache sein.
doch gar nicht passieren.

Gruß oki
42
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:24 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