Лабораторная работа №4. Обработка исключительных ситуаций Цель работы: Основные понятия:

advertisement
Лабораторная работа №4. Обработка исключительных ситуаций
Цель работы: Познакомиться с возможностями Delphi по защите приложения от воздействия неизбежно возникающих ошибок.
Основные понятия:
При написании программы могут возникать исключительных ситуаций,
т.е. ошибки связанные с получения ресурсов, несоответствия типов данных,
делением на ноль и т.п. При разработке приложений в Delphi программист
имеет возможность использовать несколько механизмов, обеспечивающих
обработку исключительных ситуаций.
С точки зрения объектно-ориентированного программирования исключительная ситуация – это объект. В модуле SYSUTILS описан объектный тип
Exception. Он является предком для всех других объектов – исключительных
ситуаций.
Для работы с объектами исключительных ситуаций существуют специальные конструкции языка Object Pascal – блоки Try .. Except и Try .. Finally.
Они контролируют выполнение операторов, помещенных внутри блока до
ключевого слова Except (Finally). В случае возникновения исключительной
ситуации штатное выполнение программы прекращается, и управление передаётся операторам, идущим за указанными ключевыми словами.
Хотя синтаксис двух видов блоков похож, но они принципиально отличаются назначением и решаемыми задачами. Поэтому вопрос, какой из них
выбрать, не стоит.
Блок Try .. Except. Для реакции на конкретный тип ситуации применяется блок Try .. Except. Синтаксис его следующий:
Try
{Программный код, в котором может возникнуть ошибка}
Except
{Вывод сообщения об ошибке}
End;
Выполнение блока начинается с секции Try. При отсутствии исключительных ситуаций только она и выполняется. Секция Except получает управление в случае возникновения исключительной ситуации. После обработки
происходит выход из блока, выполняются операторы, стоящие после End.
Блок Try .. Finally соответствует случаю, когда необходимо возвратить
выделенные программе ресурсы даже в случае аварийной ситуации. Синтаксис его таков:
Try
{Программный код, в котором может возникнуть ошибка}
Finally
{Программный код, который будет выполняться в любом случае}
End;
Высокоуровневые методы информатики и программирования
Следующие за Try операторы исполняются в обычном порядке. Если за
это время не возникло никаких исключительных ситуаций, далее следуют те
операторы, которые стоят после Finally. В случае если между Try и Finally
произошла ошибка, управление передаётся на операторы после Finally.
Данная конструкция ничего не делает с самой исключительной ситуацией. Задача Try .. Finally – только прореагировать на факт нештатного поведения программы и проделать определенные действия.
Порядок выполнения работы
1. Запустите Delphi. Создайте новый проект.
2. Назовите форму MainForm с заголовком Главная. Для формы задайте:
 размер – 600х800;
 минимальный размер – 300х400;
 максимальный размер – 800х1200.
3. Сохраните проект в папку D:\Users\...\Lab4\... . Окно сохраните под именем
MainUnit, а проект под именем ErProject.
4. На форме создайте:
 первую панель высотой 150, сделайте, чтобы она выравнивалась по
верхнему краю окна. Измените цвет панели;
 разделитель высотой 5, сделайте, чтобы он выравнивался по верхнему
краю окна;
 вторую панель высотой 50, сделайте, чтобы она выравнивалась по нижнему краю окна;
 редактор RichEdit (вкладка Win32), назовите его MainREdit. Сделайте,
чтобы он занимал всю оставшуюся форму;
 диалог открытия файла. Сделайте, чтобы в окне могли отображаться все
файлы, текстовые (txt) и текст в формате rtf;
 диалог сохранения файла. Сделайте, чтобы в окне могли отображать все
файлы и текст в формате rtf;
 диалог выбора шрифта;
 главное меню с пунктами Файл, Разработчик и Выход. В меню Файл
создайте подпункты Сохранить и Загрузить;
5. На первой панели создайте:
 надпись "1 число", рядом однострочный редактор;
 надпись "2 число", рядом однострочный редактор;
 четыре кнопки с заголовками Сумма, Разница, Деление и Умножение.
6. Запрограммируем кнопку Сумма, чтобы при нажатии на неё проверялись
значения, введённые в однострочных редакторах, и, если там числа, то их
сумма записывалась в многострочный редактор. В процедуру обработки
для кнопки введите код:
2
Высокоуровневые методы информатики и программирования
Try
s := StrToInt (Edit1.Text) + StrToInt (Edit2.Text);
MainREdit.Lines.Add(Edit1.Text+'+'+Edit2.Text+'='+IntToStr(s))
Except
Application.MessageBox('Введите целое число', 'Ошибка!!!');
MainREdit.Lines.Add ('Ошибка');
End;
7. Аналогично запрограммируйте кнопки Разница, Деление и Умножение.
8. На второй панели создайте две кнопки с заголовками: Шрифт и Очистить. Запрограммируйте их, чтобы первая позволяла изменять шрифт в
многострочном редакторе, а вторая – удаляла всё из него.
9. Создайте вторую форму размером 400х400, измените её цвет. Назовите
форму AboutForm с заголовком Разработчик. На форме:
 напишите своё Ф.И.О., группу, № лабораторной работы, год. Измените
для надписи цвет и размер шрифта;
 создайте графическую кнопку с предопределённым видом Close.
10. На форме Главная запрограммируйте главное меню.
3
Download