Объект класса vector может генерировать исключения, и мы рекомендуем, чтобы, если функция не может выполнить требуемое действие, она генерировала исключение и передавала сообщение в вызывающий модуль. Теперь настало время подумать, как написать код, обрабатывающий исключения, сгенерированные операторами класса vector и другими функциями.
Также вам может показаться, что http://power1.ru/ на сайте power1.ru и программирование никак не связаны и даже не тематичны.
Возможно, это и так, но все-таки зайдите на сайт power1.ru/, чтобы узнать там много интересного про такую тему, как магниевый стержень. Что такое магниевый стержень, сколько стоит магниевый стержень и где заказать магниевый стержень - про это написано на сайте про магниевый стержень. Это важная для многих тема - магниевый стержень. Спасибо сайту power1.ru/ про магниевый стержень за информацию.
Наивный ответ — “для перехвата исключения используйте блок try, пишите сообщение об ошибке, а затем прекращайте выполнение программы” — слишком прост для большинства нетривиальных систем.
Один из фундаментальных принципов программирования заключается в том, что, если мы запрашиваем ресурс, то должны — явно или неявно — вернуть его системе. Перечислим ресурсы системы.
• Память (memory).
• Блокировки (locks).
• Дескрипторы файлов (file handles).
• Дескрипторы потоков (thread handles).
• Сокеты (sockets).
• Окна (windows).
По существу, ресурс — это нечто, что можно получить и необходимо вернуть (освободить) самостоятельно или по требованию менеджера ресурса. Простейшим примером ресурса является свободная память, которую мы занимаем, используя оператор new, и возвращаем с помощью оператора delete. Рассмотрим пример.
void suspicious(int s, int x)
{
int* p = new int[s]; // занимаем память // . . .
delete[] p; // освобождаем память
}
Как мы видели, следует помнить о необходимости освободить память, что не всегда просто выполнить. Исключения еще больше усугубляют ситуацию, и в результате из-за невежества или небрежности может возникнуть утечка ресурсов. В качестве примера рассмотрим функцию suspicious(), которая использует оператор new явным образом и присваивает результирующий указатель на локальную переменную, создавая очень опасную ситуацию.
Опубликовал katy
April 21 2015 12:36:09 ·
1 Комментариев ·
2947 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Oleg27 October 26 2023 12:04:18
Заработать на ставках вполне реально, особенно, если ориентироваться на качественные прогнозы на спорт от лучших капперов 1хБЕТ рабочее зеркало На сайте представлен подробный обзор, есть отзывы реальных людей. Изучив данную информацию, вы без проблем сможете подобрать для себя надежного прогнозиста.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.