Les exceptions, introduites au départ dans le langage ADA, sont un moyen très efficace de traiter les erreurs. Il ne faut cependant pas en abuser car :
Dans l'exemple suivant, nous allons voir les
possibilités
des exceptions qui vont nous permettre ici de sortir en catastrophe
d'une
boucle et de deux fonctions:
 
 
#include <iostream>
using namespace std;
enum exception2 {Erreur1,Erreur2};
void procedure2() throw (exception2)
{
int n=20,catastrophe1=0,catastrophe2=0;
  for(int i=0;i<n;i++)
 {
     if (catastrophe1) throw
Erreur1;
     if (catastrophe2) throw
Erreur2;
     if (10==i) catastrophe1=1;
     cout <<i <<endl;
  }
return;
}
void procedure1() { procedure2(); return; }
int main()
{ 
  try
 {
   procedure1();
  }
  catch (exception2 e)
  {
      if (e==Erreur1) cout
<<
"Erreur1 a l'interieur de procedure2\n";
      if (e==Erreur2) cout
<<
"Erreur2 a l'interieur de procedure2\n";
   }
return 0;
}