Matherr - SQRT Fehler abfangen
-
Hallo,
folgendes verusch ich, mathematische Fehler abzufangen:void __fastcall TForm1::Button5Click(TObject *Sender) { int x = sqrt(-2); } int _matherr( struct _exception *except ) { return 1; }leider kommt Dennoch die Standard-Fehlermeldung: "Domain Error" ?!
-
Ich denke, du bist hier in der falschen Rubrik. In C++ setzt man auf Exceptions, bei dir stinkts nach MFC.
MfG
-
Borlandbuilder VCL eher

math.c ist aber ANSI-C deswegen schreib ich hier !
-
Achso, sieht genauso grausig aus.
Das hier ist übrigens die C++ Kategorie.
-
So oder so, y = sqrt(-x) liefert NaN.
Auf NaN kann man nach IEEE mit y == y prüfen. Das liefert immer false.
So ists auch Standardkonform.
-
Leider kommen aber dennoch diese MessageBoxen mit "Domain Error".
Dies ist mir in meinem Fall egal da ab und zu durch ungenauigkeiten einfach diese "Domain Errors" vorkommen (Fehlerhafte Übertragungen) und diese bei der nächsten Übertragung nicht mehr vorkommen,..
Nur leider steht in der Zeit bis ich "OK" klicke mein Programm
-
Schreib doch eine "my_sqrt" Funktion die den Fehler so behandelt wie du das für sinnvoll hältst.
Alternativ kannst du diese Art von Exceptions mit __try __except fangen - zumindest wenn du den MSVC verwendest.