2010-06-21 7 views

ответ

1

Вы можете выбросить исключение из своего собственного и обработать его. Вы пытаетесь сказать места, как конструкторы деструктора в этом случае вы можете обратиться следующие http://www.parashift.com/c++-faq-lite/exceptions.html#faq-17.2

Могут ли вы быть более конкретными. Что именно вы ищете.

+0

любая предварительно определенная функция или переменные, для которых мы не можем обрабатывать исключение – user371968

+1

@ lalmay-j, что именно вы подразумеваете под «невозможно обработать исключение»? Пожалуйста, добавьте это разъяснение в качестве обновления к исходному вопросу и удалите этот комментарий. SO не работает как дискуссионный форум. –

1

ну деструктор никогда не должен бросать, и вы не должны использовать исключение в обработчиках сигналов, потому что это почти всегда не заканчивается хорошо, если это то, что ваш вопрос, но ваш вопрос немного расплывчато.

+2

Больше, чем деструктор * не должен * бросать, но это прекрасно. Я думаю, что речь идет не о необходимости, а о необходимости. – GManNickG

+1

То же самое касается обработчиков сигналов - они не должны выходить из-за исключения, но это приемлемо для того, чтобы бросать и ловить в них. – MSalters

1

Существует только одна ситуация, когда обработчик исключений не может обрабатывать исключение - функцию try/catch block вокруг конструктора.

Блокировка блоков может переводить исключение, но они не могут выйти без металирования. См. here для более полного обсуждения.


Если вы спрашивали о местах, откуда исключения не могут быть выброшены вместо того, где они не могут быть обработаны тогда ...

Бросив исключение Фро деструктора крайне нецелесообразно. Обстоятельства, при которых это безопасно, настолько трудно гарантировать, что вам следует избегать когда-либо бросать деструктор.

Смежные вопросы