Comment lancer une exception C ++

Comment lancer une exception C ++
Lancer une exception C ++ est une technique importante qui aide à améliorer la structure globale et la stabilité du code. Les exceptions C ++ sont des objets simples utilisés pour indiquer qu'une condition d'erreur s'est produite au-delà de la portée de ce qui peut être géré par une exécution normale.

Cet article fournira un détail sur la façon de Jetez une exception C ++, en mettant l'accent sur la bibliothèque standard bibliothèque et utilisation de base Essayer / attraper blocs.

Comment lancer une exception C ++

Avant que l'on puisse commencer à apprendre à Jetez une exception C ++, il est important de comprendre ce qu'est une exception. Un objet utilisé pour signifier un état incorrect est l'exception. Les utilisateurs de C ++ l'utilisent lorsque quelque chose d'inattendu ou au-delà des capacités du programme se produit. Il existe plusieurs façons de définir quand et comment une exception doit être lancée. En général, vous pouvez utiliser lorsqu'une action se déroule qui peut être considérée comme une situation anormale. Une chose à retenir est que lorsqu'un L'exception est lancée, Il ne doit jamais être utilisé pour indiquer une action intentionnelle par l'utilisateur.

Vous pouvez transférer le contrôle entre les parties d'un programme en utilisant des exceptions. Essayer, Attraper, et Lancer sont les trois mots clés de base pour Gestion des exceptions de C ++. Lorsqu'un problème se pose, un programme faire une exception en utilisant le lancer mot-clé. Un gestionnaire d'exceptions est utilisé par un logiciel pour prendre une exception à l'endroit où le problème doit être géré. Le terme attraper indique capturer une exception. UN essayer Block Spécifie une section de code qui déclenchera certaines exceptions. Un bloc de capture ou des blocs est ensuite ajouté après.

En héritant et en modifiant la fonctionnalité de la classe d'exception, vous pouvez créer vos propres exceptions. L'exemple qui suit montre comment créer votre propre exception STD :: Exception classe de manière standard.

#inclure
#inclure
Utilisation de Namespace Std;
struct myException: exception publique
const char * what () const throw ()
Renvoie "une exception C ++";

;
int main()
essayer
lancer myException ();
catch (myException & e)
std :: cout << "My exception caught" << std::endl;
std :: cout << e.what() << std::endl;
catch (std :: exception & e)

Dans l'exemple ci-dessus, quoi() est une méthode publique fournie par la classe d'exception dans ce cas, et toutes les classes d'exception d'enfants l'ont remplacé. Cela fournit la cause profonde de l'exception.

Sortir

Un exception devrait être jeté À l'intérieur d'un constructeur C ++ lorsque le bâtiment des objets échoue, car il n'y a aucun moyen de récupérer. Les constructeurs doivent en outre lancer des exceptions C ++ Pour indiquer les paramètres d'entrée qui sont au-delà de la plage ou avec des valeurs qui ne sont pas autorisées. Les codes de retour ne peuvent pas être utilisés dans les constructeurs C ++ car ils n'ont pas de type de retour. Par conséquent, il est recommandé que Les constructeurs lancent des exceptions Pour indiquer l'échec.

Pour Jetez une exception C ++ et terminer le code du constructeur, utilisez le lancer déclaration.

#inclure
#inclure
Utilisation de Namespace Std;
int addpositifint (int x, int y)

si (x<0 || y<0)
lancer std :: invalid_argument ("Les arguments devraient être positifs");
return (x + y);

int main()

essayer
cout << AddPositiveInt(-1, 2);
Catch (std :: invalid_argument & e)
Cerr << e.what() << endl;
retour -1;
retour 0;

Dans cet exemple d'exception C ++ Throw, le AddPositiveInt () la méthode est utilisée à partir du bloc d'essai de la fonction principale (). Une exception d'argument non valide est lancée par le AddPositiveInt () fonction Si l'un des deux paramètres attendus, entiers X et y, sont négatifs. La bibliothèque standard Le fichier d'en-tête contient la définition du std :: invalide classe d'arguments. Cette classe spécifie les types d'objets qui peuvent être jeté comme exceptions et les journaux C ++ Problèmes causés par les valeurs de paramètres non valides. Le principal() Le bloc de capture de la fonction capture et traite l'exception de l'argument non valide.

Sortir

Quand lancer une exception C ++

Savoir quand faire une exception est la première étape, mais comment l'implémenter? La bibliothèque standard comprend une gamme de classes sous le bibliothèque, qui sont souvent utilisées pour lancer des exceptions. Ils contiennent des informations importantes pour informer l'utilisateur de tout type d'erreurs qui se produisent, telles que le message d'erreur et le type d'erreur. Une fois que les utilisateurs ont identifié la classe appropriée, ils peuvent ensuite utiliser le «lancer»Mot-clé pour lancer l'exception.

Conclusion

Lancer une exception C ++ est un processus simple qui gère toute type d'erreurs dans le programme. Il est important d'utiliser le Bibliothèque lors de la lancement d'exceptions et d'utiliser le «Essayer / attraper”Block Structure pour les trouver et les gérer de manière appropriée. Vous pouvez être convaincu que votre code peut gérer poliment les erreurs si vous faites cela.