Folco (./160) :
GoldenCrystal (./158) :
Une fonction ?
catch (int e)
{
cout << "An exception occurred. "
cout << "Exception Nr. " << e << endl;
}
}
Ben ça, ça ressemble à une fonction[/pre]
Si jamais c'est le paramètre entre parenthèses qui te fait croire à une fonction, ça n'a pas grand chose à voir: (c'est pas non plus 100% différent fonctionnellement mais ne t'attarde pas là dessus !

)
1. Il n'y en au plus qu'un seul.
2. Ça sert de filtre pour le type d'exception: tu peux avoir plusieurs catch pour un [seul] try, qui interceptent des types différents.
qui peut être écrite en-dehors de toute autre, non ?
Le bloc catch que tu as écrit n'est il pas justement lié au bloc try (que tu ne sembles pas considérer comme une fonction ?

) que tu as écrit au paravant ?
Comment pourrais tu honnêtement les séparer ?
try // Je sais que quelque chose de mauvais pourrait se passer là
{
Approcher(); // J'essaye de m'approcher d'un truc
}
catch (ErreurOdeur& e) // Si jamais ça pue
{
Reculer(); // Je recule avant que mon nez ne souffre trop
cout << "Ça pue le " << e.odeur << endl;
}
catch (TropPres& e) // Si jamais je suis déjà trop près
{
cout << "Distance " << e.distance << " m" << endl;
}
Tu vois bien que c'est complètement lié là ?

Sinon justement, le langage a été fait pour éviter d'avoir syntaxes différentes, c'est pour ça que tout les éléments syntaxiques se ressemblent les uns les autres. Si tu regardes bien il n'y a pas vraiment tant de sortes de structures différentes que ça.
(Et c'est personnel, mais j'ai jamais pu blairer la boucle for qui elle est vraiment bâtarde par rapport au reste, mais bon...)