Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
В общем случае, на данный момент, это действительно невозможно. 15.08.04 14:51 Число просмотров: 1681
Автор: Ktirf <Æ Rusakov> Статус: Elderman Отредактировано 15.08.04 14:52 Количество правок: 1
|
> Вышел спор. Пока без крови ;)) > Суть такова. Есть ДЛЛ, где криво написана одна из функций. > Известно, что экзепшн внутри самой функции ДЛЛ не > обрабатывается. Сорца той ДЛЛ нет, чтобы подправить. > > Товарищь утверждает, что можно обработать этот экзепшн в ( > try/ catch (...)) в вызывающей программе (коде, что > вызывает функцию ДЛЛ). > > Мой поинт - это невозможно в общем случае. Надеяться на то, > что экзепшн будет обработан в вызывающем коде - бэд > практис. В общем случае, на данный момент, это действительно невозможно. Теоретически преград к реализации передачи исключений между исполняемыми модулями в общем-то нет, вопрос в корректной реализации раскрутки стека. В общем, я бы подождал еще года два, прежде чем полагаться на эту фичу. Новый GCC и (если меня не глючит) VC 7.1 подобные штуки вроде бы поддерживают.
С идеологической же точки зрения исключения можно и нужно использовать как раз в тех случаях, когда вызванная функция не в состоянии сама справиться с нештатной ситуацией. Надеяться на обработку флага ошибки вместо исключения - плохая практика, и прецедент с operator new это наглядно показал. Если не будет обработано исключение, все упадет. Если не будет обработан флаг ошибки, все начнет работать непредсказуемо. Как программист, я предпочитаю первый вариант.
|
|
|