Форум программистов, компьютерный форум CyberForum.ru

Разъясните подробно, как работают Try-catch - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите доделать программу определения минимальной стоимости билета. http://www.cyberforum.ru/cpp-beginners/thread1116522.html
Определить минимальную стоимость билета для пассажира, следующего на заданное расстояние, стоимость билета с учетом выбранного вида вагона и поезда. Перемещение на скором поезде увеличивает стоимость билета на 20%, размещение в плацкартном вагоне – на 25%, а в купейном – на 35%. Далее следует установить окончательную стоимость билета. Его стоимость может быть снижена, если пассажир следует...
C++ Дано двумерный массив целых чисел. Найти номера строк, в которых есть только один непарный элемент Вся программа должна быть сделана с помощью функций http://www.cyberforum.ru/cpp-beginners/thread1116497.html
Нахождение максимального элемента в массиве и его индекс (элемента) C++
Доброго времени суток. Вот исходный код поиска максимального элемента массива: #include"stdafx.h" #include"stdio.h" #include"stdlib.h" #include"conio.h" #include"math.h" int _tmain(int argc, _TCHAR* argv)
Удаление лишних символов C++
Имеется файл txt.txt в котором 50 000 строк, просто физически это обработать тяжело. Нужно удалить все эти знаки ( ) | и 0. (Левая скобка, правая скобка, прямая палка и ноль) Как выглядит часть файла: ('привет', 'здорово|0|здравствуй|0'), ('здравствуй', 'привет|0|здорово|0|здравствуйте|0'), ('условия', 'данные|0'), ('вхождение', 'вступление|0'), Должно получится:
C++ Номиналы российских рублей http://www.cyberforum.ru/cpp-beginners/thread1116446.html
Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50, 100, 500, 1000, 5000. Копейки представить как 0.01(1 копейка) 0.05(5 копеек), 0.1(10 копеек), 0.5(50 копеек). Создать класс Money для работы с денежными суммами. Сумма должна быть представлена полями – номиналами. Реализовать сложение сумм, вычитание сумм, деление сумм, деление суммы на дробное число, умножение на дробное число...
C++ Программа вылетает при добавлении элемента Здравствуйте ув. форумчане. Есть у меня в программе массив первого и второго типа. При начальном создание (мы выбераем сами количество элементов) массивов деструктор срабатывает нормально. Но как только стоит добавить элемент туда ещё один элемент - программа вылетает при роботе деструктора. Прикрепил скрин ошибки и сам проект. подробнее

Показать сообщение отдельно
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
11.03.2014, 19:32     Разъясните подробно, как работают Try-catch
Цитата Сообщение от Тамика Посмотреть сообщение
throw - что делает этот оператор? И почему catch() реагирует на throw? Как они связаны между собой?
throw создает временный объект, объект исключения, в специальной области памяти (особенности этой памяти не регламентированы, зависят от реализации), главное ее назначение - сохранить объект исключения пока будет раскручиваться стек.
После того как объект исключения сохранен, поток управления начинает работать в обратном направлении, пока не будет достигнуто начало блока try. В этом месте параметры определенных нами catch блоков начинаются сравниваться с сохраненным исключением, чтобы определить совпадение. Если совпадения не найдено, то поток управления продолжает разматывать стек до следующего блока try и т.д. Если блок try не был найден, то срабатывает глобальный обработчик, который вызывает std::terminate(). Если совпадение найдено, поток управления переходит к соответствующему catch блоку (обработчику исключений), который выполняется как обычно. В процессе раскрутки стека вызываются в порядке обратном созданию деструкторы всех автоматических объектов, которые были к тому моменту полностью созданы.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru