J'ai configuré Visual Studio pour lancer des exceptions à virgule flottante via la fonction _controlfp. Cela fonctionne pour NAN et INF, mais pas QNAN. C'est à dire. Les NaN silencieux ne provoquent pas d'exception. Existe-t-il une fonction, ou une option de configuration pour Visual Studio 2008/2010, qui forcera les QNAN à être à la place des NAN, afin qu'ils lancent des exceptions?Force tout QNaN à être à la place normal NaN (SNaN) si des exceptions sont levées
Répondre
Quelques conseils utiles, bien que je ne l'ai jamais fait à distance quelque chose comme ceci:
Lire: http://www.cisl.ucar.edu/docs/trap.error/errortypes.html
La recherche résultant sur Internet (que j'ai vraiment passé seulement environ 30 secondes) , me conduit à croire que cela est normalement activé avec une option de compilateur. Cependant, je pense aussi que cette activation/désactivation des interruptions peut être spécifiée par programme, et en particulier dans Windows, cela peut être fait par pratiquement n'importe quel programme, comme lorsqu'une imprimante est utilisée pour l'impression. En outre, si vous modifiez cette option par programme, redéfinissez-la à la valeur précédente dès que vous le pouvez, sinon, si les utilisateurs de .NET essaient d'utiliser votre code, ils peuvent avoir des problèmes.
(En d'autres termes, votre utilisation de _controlfp pourrait être outrepassée par une autre routine, en supposant que est en effet l'approche à utiliser)
- 1. Attraper les exceptions levées à partir des DLL
- 2. Pourquoi FLD1 charge-t-il NaN à la place?
- 3. Les exceptions multi-levées sont-elles vérifiées ou exécutées?
- 4. Performances lorsque les exceptions ne sont pas levées (C++)
- 5. Quelles sont les exceptions possibles peuvent être levées lors de l'exécution de executeQuery()
- 6. WPF DataBinding montre pour les exceptions levées
- 7. Exceptions d'enveloppes levées dans super/ce constructeur appelle d'autres exceptions
- 8. Contenir des exceptions levées dans les formulaires enfants MDI
- 9. Le routage MVC ASP.net renvoie des exceptions comme comportement normal?
- 10. Liste toutes les exceptions qui pourraient être levées par une méthode
- 11. Si la gestion des exceptions doit être centralisée, la conception des composants WinForm est-elle incorrecte?
- 12. Django-tinymce ne fonctionne pas; Obtenir un textarea normal à la place
- 13. Castle Windsor: supprime les exceptions levées par Resolve()
- 14. DataGrid édite l'étiquette à la place des données
- 15. sélecteur à la place des boutons
- 16. Gestion des exceptions: si condition par rapport à l'exception
- 17. Dans quels cas les champs publics devraient-ils être utilisés à la place des propriétés?
- 18. lecture des nombres à virgule flottante avec 1. # valeurs QNAN dans python
- 19. Comment comparer un float à NaN si les comparaisons avec NaN retournent toujours false?
- 20. Requête mysql qui peut être utilisée à la place mysql_num_rows
- 21. Aide à la gestion des exceptions
- 22. Utiliser machiniste à la place des appareils
- 23. Comment faire pour ne pas savoir quelles exceptions peuvent être levées par une méthode de bibliothèque dans Ruby?
- 24. Tous les jours à struts2 datetimepicker sont remplacés par NaN lorsque la date est invalide submited
- 25. Quelles sont les étapes nécessaires à garder à l'esprit, si quelqu'un veut convertir le projet Normal WPF en MVVM activé?
- 26. QListWidget qui redimensionne à la place des parchemins
- 27. Ajout de la gestion des exceptions globales à ASP.NET
- 28. opération DBCC SHRINKFILE augmente l'utilisation des données à la place
- 29. force LinqToSql à soumettre
- 30. en utilisant des valeurs générées à la place des déclencheurs
Je me attends la réponse soit « non » mais je suis très intéressé. –
une autre réponse vous pouvez trouver utile: http://stackoverflow.com/questions/2769814/how-do-i-use-try-catch-to-catch-floating-point-errors/2769889#2769889 – George
@George: merci , c'était effectivement utile – Dave