Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Спецификация исключений


Автор: vinter 18.5.2008, 13:54
Все привет, насколько я понимаю при 
Код

void foo() throw(MyExcept)

все исключения сгенерированные этй ф-ие, кроме MyExcept должны вызывать unexpected(); ?

а у меня получается, что при 
Код

void foo() throw(MyExcept)
{
     throw bad_alloc("123");
};

.........

try
{
   foo();
}
    
catch(bad_alloc)
{
}
catch(MyExcept err)
{
   err.what();
}


попадаю в обработку bad_alloc, может кто нить объяснить что за ерунда? smile

Автор: Daevaorn 18.5.2008, 14:12
Какой компилятор?

Автор: vinter 18.5.2008, 14:16
VS 2008

Автор: Daevaorn 18.5.2008, 14:17
Ну значит со времен 2003 ничего не изменилось - спецификации исключения в нем можно расценивать как комментарии. Они никак не обрабатываются компилятором.

Автор: vinter 18.5.2008, 14:20
Цитата(Daevaorn @  18.5.2008,  15:17 Найти цитируемый пост)
Ну значит со времен 2003 ничего не изменилось - спецификации исключения в нем можно расценивать как комментарии. Они никак не обрабатываются компилятором.

обидно :( спасибо

Автор: MTWizard 20.5.2008, 21:24
Просто в студиях явно написано, что поддерживаются реально 2 спецификации: throw() и throw(...). Причём всё, что не первая, то становится второй smile

Автор: Lazin 20.5.2008, 21:54
не стоит из за этого сильно переживать, одними граблями меньше smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)