![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Объектов сопровождается вызовом для них деструкторов
ОСОБЕННОСТИ МЕХАНИЗМА ОБРАБОТКИ ИСКЛЮЧЕНИЙ В ЯЗЫКЕ С++ Вышеизложенное объясняет следующие особенности механизма обработки исключений в языке С++ [1,2]: Обрабатываются только исключительные ситуации, явно генерируемые Некоторой функцией; Поддерживается окончательная модель обработки. Это означает, что После возникновения исключения невозможно продолжение выполнения Программы с точки исключения; Обработка исключения возможна только в функции, вызванной до его Возникновения и еще не завершившейся. После выбрасывания исключения void func2() { int i=256; // Когда поток управления достигает этого // места, то, двигаясь вглубь стека, // увидим локальную переменную i, фрейм // функции func2(), адрес возврата в // func1(), переменную k, фрейм функции // func1(), адрес возврата в main(), // переменную j } void func1() { int k=128; Func2(); } void main(void){ int j=64; Func1(); } Вершина Стека Младшие адреса памяти • Код программы • Статические данные • Куча j=64 Адрес возврата в main() k=128 Фрейм для func1() i=256 Стек Старшие адреса памяти Адрес возврата в func1() Фрейм для func2() Управление должно быть передано некоторому программному блоку, Принадлежащему функции, еще находящейся в стеке вызовов, путем его Разматывания; Если заявлено исключение, для которого нет обработчика в цепочке Вызовов, программа будет завершена. В процессе поиска обработчика Программный стек будет раскручен до конца; 5) Если обработчик «поймал» исключение, то обработка этого же исключения Другими обработчиками, которые могут для него существовать, невозможна. Другими словами, действует первый подходящий обработчик, Встретившийся в процессе разматывания стека; Если после заявления исключения управление передано catch-блоку, то вне Зависимости от результата последующих действий исключение считается Date: 2015-12-12; view: 435; Нарушение авторских прав |