Exercice 135
Énoncé
Quels résultats fournira ce programme lorsqu’on lui fournit comme données :
a. la valeur 1þ?
b. la valeur 0 ?
#include
using namespace std ;
main()
{ int n ;
cout << "donnez un entier : " ;
cin >> n ;
try
{ cout << "debut premier bloc try\n" ;
if (n) throw n ;
cout << "fin premier bloc try\n" ;
}
catch (int n)
{ cout << "catch 1 - n = " << n << "\n" ;
}
cout << "suite programme\n" ;
try
{ cout << "debut second bloc try\n" ;
throw n ;
cout << "fin second bloc try\n" ;
}
catch (int n)
{ cout << "catch 2 - n = " << n << "\n" ;
}
cout << "fin programme\n" ;
}
a. Avec la valeur 1 :
donnez un entier : 1
debut premier bloc try
catch 1 - n = 1 // fourni par le bloc catch(int) associé au premier
// bloc try
suite programme
debut second bloc try
catch 2 - n = 1 // fourni par le bloc catch(int) associé au second bloc
// try
fin programme
On notera bien que, dans le premier bloc try, l’exception de type int provoque un
branchement au bloc catch(int) correspondant. Comme ce dernier ne comporte pas
d’instruction d’interruption de programme ou de fonction, on passe aux instructions
332
Énoncé
Quels résultats fournira ce programme lorsqu’on lui fournit comme données :
a. la valeur 1þ?
b. la valeur 0 ?
#include
using namespace std ;
main()
{ int n ;
cout << "donnez un entier : " ;
cin >> n ;
try
{ cout << "debut premier bloc try\n" ;
if (n) throw n ;
cout << "fin premier bloc try\n" ;
}
catch (int n)
{ cout << "catch 1 - n = " << n << "\n" ;
}
cout << "suite programme\n" ;
try
{ cout << "debut second bloc try\n" ;
throw n ;
cout << "fin second bloc try\n" ;
}
catch (int n)
{ cout << "catch 2 - n = " << n << "\n" ;
}
cout << "fin programme\n" ;
}
a. Avec la valeur 1 :
donnez un entier : 1
debut premier bloc try
catch 1 - n = 1 // fourni par le bloc catch(int) associé au premier
// bloc try
suite programme
debut second bloc try
catch 2 - n = 1 // fourni par le bloc catch(int) associé au second bloc
// try
fin programme
On notera bien que, dans le premier bloc try, l’exception de type int provoque un
branchement au bloc catch(int) correspondant. Comme ce dernier ne comporte pas
d’instruction d’interruption de programme ou de fonction, on passe aux instructions
332
