Division by Zero - BMax erkennt diese Exception nicht?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Skabus

Betreff: Division by Zero - BMax erkennt diese Exception nicht?

BeitragDo, Mai 06, 2010 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

mal eine kleine Frage: Kann es sein, dass BlitzMax keinen Division by Zero-Exception wirft?
Hab eben net schlecht gekuckt als ich das Windows-Fenster "Programm hat Fehler festgestellt bla"
gesehen hab als ich einen Teil meines Spielmenüs aufrufen wollte.

Nach 4 Minuten drüberkucken habe ich dann gesehen, dass ich im worst case irgendwo 0/0 rechne
und das geht ja net.

Ich möchte mich aber dran erinnern, dass Blitz3D noch derartiges erkannt hat.

Hat jemand von euch bei BlitzMax schonmal solche Fehlermeldung bekommen?

Wäre nämlich etwas unsauber wenn der Debugger sowas net abfängt.

Gibts evtl. nen manuellen Weg sowas abzufangen, außer es gleich richtig zu machen?


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu
 

Ava

Gast

BeitragDo, Mai 06, 2010 12:43
Antworten mit Zitat
Richtig machen ist natürlich nie verkehrt. Smile *g*

Blitzmax kennt die "Zahlenwerte" NAN und INF ( "not a number" bzw. "infinity" ). Eine Division durch 0 führt in der Regel zu letzterem, wirft also keine Fehlermeldung, führt aber zu allerlei Murks, wenn man dieses Ergebnis nicht erwartet bzw. berücksichtig und damit weiterrechnet. ^^
 

Macintosh

BeitragDo, Mai 06, 2010 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich / 0 rechne wift er mir immer irgendwelch merkwürdigen fehler zu...
Sollte echt mal eingebaut werden ..
 

Lador

BeitragDo, Mai 06, 2010 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte das vor Kurzem mal und bekam eine "Unhandled exception memory" oder so.

MFG Lador
Mein aktuelles Projekt:
2D-Rollenspiel "Iliran"
Screenshot | Worklog
Fortschritt: ca. 70%

Noobody

BeitragDo, Mai 06, 2010 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, bei mir kommt immer EXCEPTION_INT_DIVIDE_BY_ZERO (Version 1.36), egal, ob Debug-Build oder nicht. Je nach dem müsst ihr BMax upgraden oder downgraden.

Ava hat Folgendes geschrieben:
Blitzmax kennt die "Zahlenwerte" NAN und INF ( "not a number" bzw. "infinity" ). Eine Division durch 0 führt in der Regel zu letzterem, wirft also keine Fehlermeldung, führt aber zu allerlei Murks, wenn man dieses Ergebnis nicht erwartet bzw. berücksichtig und damit weiterrechnet.

Das stimmt allerdings nur für Fliesskommazahlen. Int bzw. Long kennen NAN und +-INF nicht, darum ist eine Int-Division durch 0 auch tödlich für jedes Programm. Erst, wenn mindestens einer der Operanden eine Fliesskommazahl ist, wird das Ergebnis in symbolische Werte (NAN oder +-INF) umgewandelt.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

Ava

Gast

BeitragDo, Mai 06, 2010 18:34
Antworten mit Zitat
@Noobody
Jap, das stimmt natürlich. Gilt nur für Float und Double, vergaß ich zu erwähnen.

mpmxyz

BeitragDo, Mai 06, 2010 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir kommt auch eine "EXCEPTION_INT_DIVIDE_BY_ZERO"-Meldung und der Debugger zeigt mir die Zeile an. (1.38; was ändert sich eigentlich in der neuen Version?)
Welche Version habt ihr?
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Skabus

BeitragDo, Mai 06, 2010 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab 1.39 und da ich _natürlich_ ein Orginal habe, update ich das Ding sofort...

Allerdings hab ich wie ich gerade merke an meinem großen Rechner noch 1.35...muss ich mal updaten...

Auf jeden Fall hatte ich ne Variable temp:Int die dann temp/temp berechnet.

Wenn Temp also 0 wird(was das Prog ja erst weiß wenn die Daten berechnet wurden) würde 0/0 eigtl. nen
Exception werfen. Tut es aber net...^^"


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group