КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Утечка ресурсов и защита от нееПрограммы, построенные с использованием механизма исключительных ситуаций, обязаны придерживаться строгих правил распределения и освобождения таких ресурсов, как память, файлы, ресурсы операционной системы. Представьте ситуацию: подпрограмма распределяет некоторый ресурс, но исключительная ситуация прерывает ее выполнение, и ресурс остается не освобожденным. Даже подумать страшно, к чему может привести такая ошибка: утечка памяти, файловых дескрипторов, других ресурсов операционной системы. Следовательно, ресурсы нуждаются в защите от исключительных ситуаций. Для этого в среде Delphi предусмотрен еще один вариант защищенного блока: // запрос ресурса try // защищаемые операторы, которые используют ресурс finally // освобождение ресурса end; Особенность этого блока состоит в том, что секция finally...end выполняется всегда независимо от того, происходит исключительная ситуация или нет. Если какой-либо оператор секции try...finally генерирует исключительную ситуацию, то сначала выполняется секция finally...end, называемая секцией завершения (освобождения ресурсов), а затем управление передается внешнему защищенному блоку. Если все защищаемые операторы выполняются без ошибок, то секция завершения тоже работает, но управление передается следующему за ней оператору. Обратите внимание, что секция finally...end не обрабатывает исключительную ситуацию, в ней нет ни средств ее обнаружения, ни средств доступа к объекту исключительной ситуации. Рисунок 2. Логика работы оператора try…except…end Блок try...finally...end обладает еще одной важной особенностью. Если он помещен в цикл, то вызов из защищенного блока процедуры Break с целью преждевременного выхода из цикла или процедуры Continue с целью перехода на следующую итерацию цикла сначала обеспечивает выполнение секции finally...end, а затем уже выполняется соответствующий переход. Это утверждение справедливо также и для процедуры Exit (выход из подпрограммы). Как показывает практика, подпрограммы часто распределяют сразу несколько ресурсов и используют их вместе. В таких случаях применяются вложенные блоки try...finally...end: // распределение первого ресурса try ... // распределение второго ресурса try // использование обоих ресурсов finally // освобождение второго ресурса end; ... finally // освобождение первого ресурса end; Кроме того, вы успешно можете комбинировать блоки try...finally...end и try...except...end для защиты ресурсов и обработки исключительных ситуаций. Итоги В этой главе вы узнали многое об исключительных ситуациях и способах борьбы с ними. Теперь ваши программы наверняка дадут достойный отпор не только самому неотесанному пользователю, но и его деревянному компьютеру. Это, кстати говоря, одно из необходимых качеств, которые позволят отнести вашу программу к классу хороших. Позволим себе также напомнить, что здесь были рассмотрены только ошибки времени выполнения, поэтому не забудьте прочитать гл.10, где рассказано о борьбе с логическими ошибками.
Урок 25. Предмет: Технология разработки программных продуктов. Тема :Коллективная разработка ПО.
Цели: Образовательная Ознакомление с принципами коллективной разработки ПО. Развивающая: Развивать умение слушать других, делать выводы и обобщать полученные знания Воспитательная: Воспитывать чувство значимости предмета в профессиональной деятельности, аккуратности в работе Межпредметные связи: - Английский язык - Операционные системы - Информационные технологии - Основы алгоритмизации и программирования Оборудование: доска, мел, письменные принадлежности, проектор, ПК Тип урока: комбинированный Метод обучения: Объяснительно иллюстративный Ход урока: 1.Организационный момент - Проверка готовности кабинета - Объявление темы 2. Постановка цели урока 3.Повторение пройденного материала
4.Сообщение новых знаний Модель группы и иерархическая модель Обязанности членов группы Модель проектной группы Менеджер продукта Менеджер программы Разработчик Тестер Инструктор Логистик Размеры группы и масштаб проекта
5. Восприятие и осознание учащимися нового материала 6. Осмысление обобщение и систематизация знаний 7. Подведение итогов урока и постановка домашнего задания Выучить содержимое темы Гагарина Л.Г. стр. С.132-157 Ответить на вопросы:
Тема 3.2 Коллективная разработка ПО Модель группы и иерархическая модель. Обязанности членов группы. Модель проектной группы. Менеджер продукта. Менеджер программы. Разработчик. Тестер. Инструктор. Логистик. Размеры группы и масштаб проекта. Повышение эффективности. коллективной работы.
|