Думаю, многие из вас в курсе, что
в NPTL механизм pthread_cancel() реализован с помощью исключений. Таким образом, следует избегать нейтрализации catch(...).
Знающие люди, а скажите, есть ли в мелко-мягкой среде какие-то подводные камни, из-за которых тоже следует избегать такой нейтрализации?
Заранее благодарен! :-)
Update: Обратные ссылки:
(
Read more... )
Comments 28
(The comment has been removed)
Reply
Reply
Но если таки очистишь совесть - дай знать! ;-)
Reply
API c-шный, потому никаких try/catch, как можно догадаться.
В чём мегабяка такого шатдауна если тред держит какойнить критикл_секшн (может и не сам, может где в кишках сторонней билибитеки или самого вантуза). Ну и ваще шатдаунить надо корректно.
Reply
Мне нужно обеспечить недопустимость вырывания наружу исключений за plain-C интерфейс. Из поста следует, что не все исключения я должен гасить, но это - в среде Линукса.
Reply
или хотя бы гнать ссаными тряпками :)
потому что если где-то что-то сегфолтится и нейтрализуется этим кэтчем, то узнаешь ты об этом как правило слишком поздно
Reply
Что сделаешь, если у тебя реализация на Си++, а тебя просят спрятать это за обычным Си, требуя, чтобы никаких исключений не вырывалось наружу?
Да, есть некоторый набор исключений самой библиотеки.
Но она использует, например, STL.
Reply
делаешь catch( std::exception& e ) и все
можешь даже после этого в сишный интерфейс какую-нибудь строковую ошибку вернуть (по e.what() выдастся const char *
Reply
Спасибо!
Reply
Reply
Как сам-то?
Доволен работой в результате?
Reply
Сорри что не сразу ответил, твой комментарий потерялся)
Reply
И не стоит волноваться, я вполне понимаю...
А на ЖЖ - я и сам забиваю...
Хотя, конечно, на активность - отвечаю активностью!
(в смысле, если уж комментарии есть - как минимум просматриваю)
Reply
Leave a comment