Вопрос: Как дела с catch(...) в MS?
Aug. 16th, 2011 12:38 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Думаю, многие из вас в курсе, что в NPTL механизм pthread_cancel() реализован с помощью исключений. Таким образом, следует избегать нейтрализации catch(...).
Знающие люди, а скажите, есть ли в мелко-мягкой среде какие-то подводные камни, из-за которых тоже следует избегать такой нейтрализации?
Заранее благодарен! :-)
Update: Обратные ссылки: alextutubalin: Об исключениях (C++)
Знающие люди, а скажите, есть ли в мелко-мягкой среде какие-то подводные камни, из-за которых тоже следует избегать такой нейтрализации?
Заранее благодарен! :-)
Update: Обратные ссылки: alextutubalin: Об исключениях (C++)
Re: в чем проблема? все исключения STL унаследованы от std::e
Date: 2011-08-16 02:44 pm (UTC)Спасибо!
no subject
Date: 2011-08-16 02:47 pm (UTC)Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 02:59 pm (UTC)А тип исключения, действительно, может многое сказать, ведь базовый класс STL исключений содержит виртуальную таблицу, а значит, можно получить run-time type infromation - люблю этим пользоваться в этих случаях.
Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 03:16 pm (UTC)Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 03:21 pm (UTC)"А вы так - не делайте!"
Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 03:22 pm (UTC)Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 03:34 pm (UTC)У меня вызовы - кошерные? Кошерные!
Библиотека с остальным кодом в исполняемый модуль собралась? Собралась!
Что ты ещё от меня хочешь?
А прострелить себе ногу - я тебе могу и без исключений и в одной среде способов предложить; те же встроенные конструкторы и невстроенные деструкторы: создавай одни в одной библиотеке в отладке, а разрушай - в другой в релизе, ну или что-то в этом роде.
Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 03:35 pm (UTC)Re: сделай проверку, e.what() вполне может вернуть NULL
Date: 2011-08-16 03:37 pm (UTC)Да, мне и без этих мыслей - хватает, чем задуматься.
Но ты, эта, держи меня в тонусе, продолжай писать... ;-)