Я узнал, что когда я указываю вид исключения, функция может вызывать , другие не могут быть выброшены, но когда я протестировал этот код, он не выполнил это правило.Нет ограничений на типы исключений throw
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;
}
Я что-то неправильно понял?
Спецификации исключений никогда не были реализованы правильно большинством компиляторов, а C++ 11 осуждает их (не полностью, но по крайней мере в вашем случае использования). –