Ich habe Visual Studio so konfiguriert, dass Gleitkommaausnahmen über die _controlfp-Funktion ausgelöst werden. Dies funktioniert für NAN und INF, aber nicht für QNAN. I.e. Quiet NaNs verursachen keine Ausnahme. Gibt es eine Funktion oder eine Konfigurationsoption für Visual Studio 2008/2010, die dazu führt, dass QNANs stattdessen NANs sind, sodass sie Ausnahmen auslösen?Erzwinge, dass alle QNaN normal NaN (SNaN) sind, sodass Ausnahmen ausgelöst werden.
Antwort
einige hilfreiche Tipps, obwohl ich der Ferne etwas getan nie haben:
lesen: http://www.cisl.ucar.edu/docs/trap.error/errortypes.html
Die resultierende Suche über das Internet (die ich wirklich nur etwa 30 Sekunden auf verbracht haben) , führt mich zu der Annahme, dass dies normalerweise mit einer Compiler-Option aktiviert ist.
Ich erinnere mich jedoch, dass solche Aktivierung/Deaktivierung von Traps programmgesteuert angegeben werden kann, und insbesondere in Windows kann dies von so ziemlich jedem Programm durchgeführt werden, z. B. wenn ein Drucker zum Drucken verwendet wird. Wenn Sie diese Option programmgesteuert ändern, setzen Sie sie außerdem so bald wie möglich auf den vorherigen Wert zurück, da andernfalls Probleme auftreten, wenn Leute aus .NET versuchen, Ihren Code zu verwenden.
(Mit anderen Worten, die Nutzung von _controlfp durch eine andere Routine außer Kraft gesetzt werden kann, vorausgesetzt, dass in der Tat der richtige Ansatz zu verwenden)
- 1. Sicherstellen, dass alle Ausnahmen berücksichtigt werden, wenn PHP verwendet wird
- 2. Sind alle .NET-Ausnahmen serialisierbar?
- 3. Haskell setzt (0/0) als qnan
- 4. Leistung, wenn Ausnahmen nicht ausgelöst werden (C++)
- 5. An welchem Punkt sind Ausnahmen ausgelöst, wenn Django ORM
- 6. Sind alle Fehler der Klasse 40 in serialisierbaren Transaktionen normal?
- 7. Sind alle Funktionen "noexcept", wenn Ausnahmen deaktiviert sind?
- 8. Warum kann eine Methode so deklariert werden, dass viele Ausnahmen ausgelöst werden, auch wenn keine von ihnen ausgelöst wird?
- 9. Zellen werden alle NaN nach alphabetisch
- 10. Wie erhalte ich 'global' Ausnahmen, die in Objektinstanzen ausgelöst werden
- 11. Vergewissern Sie sich, dass in Spock keine Ausnahmen ausgelöst wurden.
- 12. Ist es normal, dass "Pods/Products /" -Dateien rot sind/fehlen?
- 13. Ist es normal, dass die gcc-Atombauten so langsam sind?
- 14. Ist es normal, dass npm-Fehler so ausführlich sind?
- 15. RxJava und Retrofit - Benutzerdefinierte Ausnahmen werden je nach Serverantwort ausgelöst
- 16. Verhindern, dass mehrere Klickereignisse ausgelöst werden JQuery
- 17. Wie erzwinge, dass alle Variablen in Typescript einen Typ deklarierten
- 18. Listet alle Ausnahmen auf, die durch eine Methode ausgelöst werden könnten
- 19. Was ist der Unterschied zwischen stillem NaN und NaN?
- 20. Sicherstellen, dass Ausnahmen immer behoben werden
- 21. Werden Ereignisse ausgelöst, ausgelöst oder ausgelöst?
- 22. Die beste Möglichkeit, Ausnahmen mit Assert zu testen, um sicherzustellen, dass sie ausgelöst werden
- 23. Wie behandelt man Ausnahmen, die in Filtern ausgelöst werden?
- 24. Wie erhalten Sie eine korrekt verkettete Stack-Trace für Ausnahmen ausgelöst, wenn andere Ausnahmen behandelt werden?
- 25. Alle jQuery-Ereignisse, die zweimal ausgelöst werden
- 26. Ausnahmen ignorieren, die in einer Bibliothek ausgelöst und abgefangen werden
- 27. Wie erzwinge ich, dass Disqus HTTPS für alle Anfragen verwendet?
- 28. ClassLoader-Ausnahmen werden protokolliert
- 29. 1. # QNAN Fehler C++
- 30. Wie alle Plattform-Compiler die gleiche Zeichenfolge für NaN ausgeben?
Ich erwarte, dass die Antwort ‚Nein‘ zu sein aber ich bin sehr interessiert. –
eine andere Antwort, die Sie nützlich finden können: http://stackoverflow.com/questions/2769814/how-doi-i-user-try-catch-to-catch-floating-point-errors/2769889#2769889 – George
@George: danke , das war in der Tat nützlich – Dave