C++ nous fournit un mécanisme de gestion des exceptions structuré et plus élégant. Ce mécanisme structuré peut séparer les parties de code normalement exécutées et de gestion des exceptions du programme, ce qui rend le programme plus clair et plus facile à lire.
Examinons ensuite la structure de la gestion des exceptions , qui est divisée en deux parties :
try{//Instruction d'exécution normale du programme throw(Expression de type d'exception);}catch(Type d'exception 1){//Code de gestion des exceptions}catch(Type d'exception 2){//Code de gestion des exceptions}catch(Type d'exception 3){// /Code de gestion des exceptions}//Code suivant
Ce qui précède est la forme de code de gestion des exceptions en C++, utilisant les trois mots-clés try , throw et catch .
Lorsque le code est exécuté, il rencontre d'abord le bloc de code try. Sa fonction est de démarrer le mécanisme de gestion des exceptions, de détecter les exceptions rencontrées lors de l'exécution du code try, puis de le lancer via throw. une expression constante ou variable. Ensuite, il sera mis en correspondance (capturé) avec le bloc d'instruction catch suivant, puis le code correspondant sera exécuté. Si aucun type correspondant n’est trouvé, poursuivez l’exécution. Si aucune correspondance n'est trouvée, la fonction terminate() est automatiquement appelée. La fonction par défaut est abort() pour terminer le programme.
Voici une gestion des exceptions lorsque le diviseur est égal à 0 lors d'une opération de division :
#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a>>b;try{if(b==0)throwerror!b<0;}catch(constchar*str){cout<<str <<endl;}catch(int){cout<<throwint<<endl;}return0;}
On peut voir que dans try, si b s'avère égal à 0, une chaîne sera lancée, puis la correspondance catch sera entrée. Évidemment, la première catch sera mise en correspondance et la valeur de str sera affichée. comprendre!