Gestion des exceptions C ++

Gestion des exceptions C ++
L'exception est tout comportement anormal ou erreur d'exécution. L'exception est une situation décalée dans notre programme où notre programme devrait être prêt à le gérer avec une réponse appropriée.

Lorsque l'exception se produit

Chaque fois que nous exécutons un logiciel, nous nous attendons à ce que notre logiciel fonctionne correctement dans n'importe quelle situation. Mais dans certains cas, certains événements se produisent lorsque le flux normal d'exécution de notre logiciel est arrêté. Ainsi, lorsque nous disons que notre logiciel doit être robuste, cela signifie que le logiciel fonctionne correctement dans n'importe quelle situation.

Gestion des exceptions

La gestion des exceptions C ++ est utilisée pour gérer systématiquement la condition d'erreur dans un programme en prenant l'action nécessaire. En utilisant la gestion des exceptions, nous pouvons facilement gérer et répondre à l'erreur de temps d'exécution.

Essayez, attrapez, jetez

  1. Si une situation exceptionnelle se produit dans notre programme, nous le contenons dans un bloc appelé essayer bloc.
  2. Si une exception se produit dans le bloc d'essai, il doit être jeté en utilisant le mot-clé lancer.
  3. Cette exception est capturée par le attraper bloc. Dans le bloc de capture, les mesures nécessaires sont prises pour gérer l'exception.

Syntaxe

essayer

Catch (type1 arg)

Catch (type2 arg)

----------
Catch (typen arg)

Explication
Premièrement, nous utilisons pour écrire le mot-clé essayer. Après avoir terminé le bloc d'essai, nous devons écrire attraper Bloquer immédiatement. Nous pouvons écrire plusieurs blocs de capture en séquence. Mais où essaie la fin du bloc, tous les blocs de capture doivent être écrits immédiatement. Si nous n'écrivons pas le bloc de capture immédiat après le bloc d'essai, une erreur peut se produire. Nous utilisons lancer mot-clé à l'intérieur du bloc d'essai.

Exemple de programmation 1

# inclure
Utilisation de Namespace Std;
int main()

couter<< “ Exception Handling Program :” ;
essayer
lancer 30;
couter<< “ \n Try ” ;

catch (int e)
couter<< “ \n Exception no : ” << e ;

couter<< “ \n Testing The Last Line ” ;

Sortir

Explication de programmation
Dans cet exemple de programmation, nous essayons de montrer comment l'exception se produit et comment la gérer. À l'intérieur de la fonction principale après avoir écrit une instruction de sortie que nous utilisons essayer bloc. Lancer Le mot-clé est utilisé à l'intérieur du bloc d'essai. Après le mot-clé, nous utilisons un numéro 30. Il peut s'agir d'une chaîne, ou d'un double ou d'un flotteur - n'importe quelle constante que nous pouvons utiliser. Ensuite, nous écrivons une instruction COUT. Mais cette ligne ne peut pas être exécutée après l'exécution de lancer. Après avoir terminé le bloc d'essai, nous écrivons immédiatement le bloc de capture. À l'intérieur du bloc de capture, nous écrivons la ligne (int e). À l'aide du mot-clé de lancer de la valeur que nous jetons, cette valeur se produira à l'intérieur de la variable E. Après avoir terminé le bloc de capture, nous écrivons une instruction de sortie «\ n test la dernière ligne». Maintenant, la question est de savoir quand cette ligne sera exécutée après l'instruction de sortie dans le bloc de capture?

Règles d'essai, de prise et de blocage

  1. Si nous écrivons un bloc d'essai, nous devons écrire un bloc de capture.
  2. Si nous écrivons uniquement un bloc de capture et que nous n'écrivons aucun bloc d'essai et lancer, une erreur se produira.
  3. Si nous écrivons un bloc de lancer et de capture et de ne pas écrire de bloc d'essai, une erreur se produira.
  4. Si nous écrivons uniquement et n'écrivons pas d'essai et de blocage, aucune erreur ne se produira. Cela signifie que nous pouvons écrire sans écrire le bloc d'essai.
  5. Si nous écrivons plusieurs blocs de capture avec différents types d'arguments en séquence, qui lancera la valeur correspondra au type d'argument de capture, il l'acceptera. Alors aucun autre bloc de capture ne sera exécuté. L'exemple de programmation est donné ci-dessous.

Exemple de programmation 2

# inclure
Utilisation de Namespace Std;
int main()

couter<< “ Exception Handling Program :” ;
essayer
si (i == 1)
lancer 1;
si (i == 2)
lancer 2;
si (i == 3)
lancer 3;
couter<< “ \n Try ” ;

catch (double e)
couter<< “ \n Exception no : ” << e ;

catch (int e)
couter<< “ \n Exception no : ” << e ;

couter<< “ \n Testing The Last Line ” ;

Sortir

F. Nous pouvons écrire plusieurs instructions de lancer dans un seul bloc d'essai.

Exemple de programmation 3

# inclure
Utilisation de Namespace Std;
int main()

int i = 3;
couter<< “ Exception Handling Program :” ;
essayer
si (i == 1)
lancer 1;
si (i == 2)
lancer 2;
si (i == 3)
lancer 3;
couter<< “ \n Try ” ;

catch (int e)
couter<< “ \n Exception no : ” << e ;

couter<< “ \n Testing The Last Line ” ;

Sortir

g. Nous pouvons écrire une déclaration de lancer dans un bloc d'essai sans donner de valeur de lancer.

Exemple de programmation 4

# inclure
Utilisation de Namespace Std;
int main()

couter<< “ Exception Handling Program :” ;
int i = 3;
essayer
si (i == 3)
lancer ;
couter<< “ \n Try ” ;

catch (int)
couter<< “ \n Exception no : ” ;

couter<< “ \n Testing The Last Line ” ;

Sortir

Explication

Ici, nous écrivons un mot-clé à lancer sans donner de valeur, alors le programme sera terminé parce que la gestion appropriée des exceptions ne se produit pas ici. En conséquence, Catch Block ne sera pas exécuté. Dans le temps de compilation, il n'y aura pas d'erreur. Mais en temps d'exécution, le programme sera terminé avec un message «Terminer appelé sans exception active».

Conclusion

Discutant en détail de la gestion des exceptions, nous apprenons ici que si une situation anormale se produit dans notre programme, le programme devra être prêt à gérer cette situation anormale.