J'ai appris que lorsque je spécifie le type d'exception que la fonction peut lancer aucun autre peut être levé, mais quand j'ai testé ce code, il n'a pas suivi cette règle.Aucune limite sur les types d'exception de lancement
void foo(int i)throw(int)
{
if(i==2)
{
throw("exception");
}
}
int main()
{
int i=2;
try
{
foo(i);
}
catch(const char* ex)
{
cout<<ex<<endl;
}
return 0;
}
Ai-je mal compris quelque chose?
Les spécifications d'exception n'ont jamais été implémentées correctement par la plupart des compilateurs et C++ 11 les déprécie (pas entièrement mais au moins votre cas d'utilisation). –