Comment gérer facilement les exceptions en C++

Comment Gerer Facilement Les Exceptions En C



Les événements inattendus qui se produisent pendant l'exécution du programme sont appelés exceptions ou erreurs. Les exceptions se produisent pendant l'exécution et ne peuvent pas être interceptées lors de la compilation, elles peuvent donc provoquer de graves problèmes dans le programme. Bien gérer les exceptions dans un programme C++ est un objectif primordial pour un programmeur pour obtenir les résultats souhaités.

Comment gérer facilement les exceptions en C++

La gestion des exceptions en C++ fait référence au mécanisme de détection des erreurs d'exécution et de leur gestion efficace, comme la gestion des entrées non valides, la division d'un nombre par zéro dans les opérations de division, et bien d'autres.

La gestion des exceptions en C++ implique trois mots-clés : try, throw et catch. L'instruction try permet à l'utilisateur de définir le bloc de code susceptible de déclencher une exception dans le code. Le mot-clé throw lève une exception s'il est détecté après avoir vérifié le bloc sous le mot-clé try. Le mot-clé catch contient le bloc de code capable de gérer l'exception observée dans le bloc try.







Exemple 1 : gestion des exceptions pendant la division

Le code est écrit pour vérifier les exceptions lors de la division.



#include
en utilisant espace de noms norme ;

int principal ( ) {

double numérateur, dénominateur, division ;

cout << 'Entrez une valeur de numérateur : ' ;
manger >> numérateur ;

cout <> dénominateur ;

essayer {


si ( dénominateur == 0 )
lancer 0 ;


division = numérateur / dénominateur ;
cout << numérateur << '/' << dénominateur << ' = ' << division << fin ;
}

attraper ( int num_exception ) {
cout << 'Erreur ! Le diviseur ne peut pas être  ' << num_exception << fin ;
}

retour 0 ;
}

Dans ce programme, l'utilisateur saisit la valeur du numérateur et du dénominateur déclarés dans la section main(). Dans le bloc try, une instruction if est utilisée pour vérifier l'exception indiquant si le dénominateur est zéro ou non. Comme la division ne peut pas être effectuée avec un diviseur nul si le dénominateur est 0, une exception sera levée et le bloc catch renverra un argument d'erreur, sinon l'opération de division simple est effectuée.







L'utilisateur saisit un numérateur 42 et un 0 au dénominateur, ce qui lève une exception, de sorte que le programme renvoie l'argument d'erreur.



L'utilisateur saisit les numérateurs 42 et 2 comme dénominateur, car aucune exception n'est trouvée, le résultat après la division revient.

Exemple 2 : Gestion des exceptions pour vérifier l'âge

Ce programme vérifie les exceptions liées à l'âge de l'utilisateur.

#include
en utilisant espace de noms norme ;

/*
Ici, nous voulons lever une exception (âge comme exception) si l'âge de la personne est inférieur à 18 ans.
*/

int principal ( )
{
// vérifie si l'âge est supérieur à 18 ans dans le bloc try.
essayer
{
int âge ;
cout << « Entrez votre âge pour accéder : » ;
manger >> âge ;

si ( âge >= 18 )
{
cout << 'Accès autorisé.' ;
}
// exception personnalisée levée si l'âge est inférieur à 18 ans.
autre
{
lancer ( âge ) ;
}
}
// interceptant l'exception levée et affichant le résultat souhaité (accès refusé !)
attraper ( int X )
{
cout << « Accès refusé ! Vous êtes mineur. » << fin ;
}
retour 0 ;
}

Dans ce programme, une variable avec une valeur entière est définie. L'utilisateur est invité à saisir l'âge et à essayer de vérifier si l'âge de l'utilisateur est supérieur ou égal à 18 ans. Si ce n'est pas vrai, il lève une exception et le bloc d'exception renverra Accès refusé ! Argument. Dans le cas contraire, l'accès sera accordé.

L'utilisateur saisit l'âge de 12 ans pour vérifier l'autorisation d'accès, car cet âge est inférieur à 18 ans. L'argument Accès refusé est donc renvoyé.

L'utilisateur saisit l'âge de 20 ans, car celui-ci est supérieur à 18 ans, l'accès est donc accordé à l'utilisateur.

Note : S'il n'y a pas de bloc catch dans le programme, alors le programme se comportera anormalement et se terminera de manière inattendue en cas d'exceptions.

Conclusion

La gestion des exceptions en C++ fait référence au mécanisme de détection des erreurs d'exécution et de leur gestion efficace. Cela implique trois mots-clés essayer, lancer et attraper. L'exception est vérifiée pour le code dans le bloc try, le mot-clé throw lève l'exception s'il est trouvé et le bloc catch gère l'exception lancée pour le bloc try. La gestion des exceptions rend l'expérience utilisateur fluide et agréable en évitant les erreurs d'exécution.