Я читаю следующий текст в прикладной книге на C++.Исключение, вызванное функциями обработчика
Можно ли исключить исключения изнутри наших функций обработчика? Ответ да, ошибка действительно может быть брошена. Проблема заключается в том, что это исключение должно быть в каждой спецификации исключения, которая может быть переведена до тех пор, пока не будет обнаружено исключение. Если это не будет сделано, приложение вызовет std :: terminate(). Для большой системы это сводится к добавлению спецификации исключения к каждой функции, , если вы не понимаете динамику своего приложения. Он также важен для всех исключений в вашем деструкторе; иначе std :: terminate() также будет вызываться в этом случае.
В приведенном выше тексте у меня есть следующие вопросы и вам нужна ваша помощь в понимании.
Что означает автор, «исключение должно быть в каждой спецификации истечения, которая может быть пройдена»?
Мое понимание, что деструктор мы не можем использовать исключения. Что означает автор, чтобы поймать все исключения внутри вашего деструктора.
Просьба уточнить, с простыми примерами
Спасибо за ваше время и помощь.
Никогда не используйте или не рекомендует кому-либо еще иметь предложение catch-all, которое не отменяет или отменяет приложение. –
@ VladLazarenko IMO, это не имеет никакого отношения к рекомендациям - это OP, спрашивающий, что автор означает цитатой, и «поймать все исключения» довольно однозначно в этом случае –
@ mel-: Нет, поймать все исключения означает поймать все исключения. Хорошие разработчики на C++ никогда не будут использовать так называемую catch-all. Для примера, прочитайте [this] (http://udrepper.livejournal.com/21541.html). –