Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа _4

.doc
Скачиваний:
24
Добавлен:
11.04.2015
Размер:
27.65 Кб
Скачать

Лабораторная работа №4

Обработка исключительных ситуаций в Delphi.

Часть I. Обработка исключительных ситуаций (ИС), связанных с ошибками ввода/вывода.

  1. Создать текстовый файл с именем Lab4.txt со следующим содержанием:

Лаб. работа №4 – обработка исключительных ситуаций.

Сохраните файл в папке «Обработка исключений».

  1. Создайте проект с формой без заголовка и с одной кнопкой. Назначение кнопки – считать строку из текстового файла Lab4.txt и вывести ее в заголовок формы.

  2. Напишите соответствующий код для кнопки, протестируйте приложение.

  3. Измение код кнопки, допустив, например, следующую ошибку: AssignFile(f,’Lab4.t’);

Запустите приложение. Обратите внимание на соответствующее сообщение обработчика ошибок Delphi.

  1. Для обработки возникшей ИС вставьте в программу конструкцию tryexcept с использованием обработчика ИС EInOutError, создающего сообщение с текстом ‘Файл не найден!’

  2. Детализируйте возникшую ИС путем определения конкретного вида ошибки:

try

. . .

except

on E:EInOutError do

case E.ErrorCode of

2:MessageDlg(‘Файл не найден!’, mtWarning, [mbOk], 0);

3:MessageDlg(‘Путь не найден!’, mtWarning, [mbOk], 0);

32:MessageDlg(‘Ошибка совместного доступа!’, mtWarning,

[mbOk], 0);

107:MessageDlg(‘Файл уже открыт!’, mtWarning, [mbOk], 0);

end;

end;

Смоделируйте данные виды ошибок ввода/вывода. Протестируйте приложение.

Часть II. Обработка ИС математики с плавающей точкой

  1. Поместите на форму три окна редактирования и кнопку «Выполнить». Используйте два окна редактирования для ввода чисел a и b, третье - для вывода результатов математических расчетов, например, a/b ,, ln(b).Придумать самостоятельно несколько аналогичных примеров

  2. Напишите соответствующий код для кнопки «Выполнить», предусмотрите обработку ИС обработчиками EZeroDivide или EMathError.

  3. Протестируйте приложение, моделируя деление на ноль, , ln(0).