Attraper une erreur de type en C ++
Question
Comment puis-je vérifier si un résultat est du bon type (int, float, double, etc.), puis lancer et attraper une exception dans le cas où ce n'est pas?
Merci à tous,
Vlad.
La solution
Pourriez-vous donner plus de détails sur ce qui vous donne « un résultat », vous pourriez être en mesure de déterminer ce dont vous avez besoin à partir de là et plus susceptibles d'une meilleure façon.
Si tout ce que vous voulez vraiment est de vérifier le type, utilisez typeid
.
Plus d'infos
Après le modèle de Daniel des postes d'édition pour répondre effectivement à la question après avoir dit autre chose ...
De mon autre commentaire:
Vous devez le faire avant de vous juste le résultat. Vérification de trop-plein après n'est pas une bonne idée. Faites une vérification sur les chiffres avant d'ajouter pour voir si ils déborder, ou restreindre l'entrée pour être inférieure à la moitié de la valeur maximale de le type
Autres conseils
Il n'y a aucun moyen de savoir que lors de l'exécution avec C ++. Ceux-ci seraient à la compilation des erreurs.
Pour répondre à votre deuxième question, vous devez vérifier manuellement tampon / sousverses trop-pleins ou utiliser un type plus approprié.
Le plus proche que vous obtiendrez est dynamic_cast .