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

Визуальное программирование / Лабораторная работа-6_ИС

.doc
Скачиваний:
34
Добавлен:
07.06.2015
Размер:
79.87 Кб
Скачать

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

Отладка программ. Исключительные ситуации и их обработка. Создание локальных обработчиков событий

Цели лабораторной работы. Продолжение знакомства с интерфейсом среды Delphi. Анализ разновидностей ошибок возникающих в ходе разработки и эксплуатации программ. Создание локальных обработчиков исключительных ситуаций. Отработка навыков отладки и выполнения программ.

Теоретический материал

Примеры потомков класса Exception.

  • EAbort – “тихое” исключение, используемое для прерывания текущего блока кода без вызова глобального обработчика.

  • EOutOfMemory – не достаточно оперативной памяти для выполнения операции.

  • EIntOutError – ошибка вводавывода файла любого типа.

  • EIntError – базовый класс для обработки ошибок, связанных с операциями над целыми числами. Специализированные исключения обрабатываются потомками этого класса:

    • EIntOverflow – переполнение в операции с целочисленными переменными;

    • EDivByZero – деление целого числа на ноль;

    • ERangeError – присвоение целочисленной переменной значения, выходящего за пределы допустимого диапазона (может вызываться при попытке обращения к элементам массива по индексу, выходящему за границы).

  • EMathError – базовый класс для обработки ошибок в операциях с плавающей точкой. Специализированные исключения обрабатываются потомками этого класса:

    • EInvalidOp – ошибка при выполнении операции над числом с плавающей точкой;

    • EZeroDivide – деление на ноль числа с плавающей точкой;

    • EOverFlow – присвоение вещественной переменной значения, которое не помещается в определенной области памяти;

    • EUnderFlow – потеря значимости при операции над числами с плавающей точкой, результат получает нулевое значение.

  • EInvalidPointer – некорректная операция с указателем.

  • EInvalidCast – неверное приведение типов с помощью оператора as.

  • EConvertError – ошибка преобразования типов, возникающая, например, при преобразовании строковых данных в числовые с помощью функций StrToInt или StrToFloat.

  • EFCreateError – ошибка создания файла.

  • EFOpenError – ошибка открытия файла.

  • EResNotFound – указанном файле отсутствует ресурс.

  • EListError, EStringListError – ошибка в списках.

  • EPrinter – ошибка печати.

  • EMenuError – ошибка в меню приложения.

  • EInvalidGraphicOperation – неправильная операция с графическим объектом.

Конструкция try .. finally состоит из двух секций и имеет следующий формат:

Try

// Операторы, выполнение которых может вызвать ошибку

finally

// Операторы, которые должны быть выполнены даже в случае ошибки

end;

Формат конструкции try .. except следующий:

Try

// Операторы, выполнение которых может вызвать ошибку

except

// Операторы, которые должны быть выполнены в случае ошибки

end;

Примеры

1. Обработка исключительных ситуаций возникающих при попытка конвертировать в числовое строковых значений, которые не являются числами, а также при попытке деления на ноль.

procedure TForm1.Button1Click(Sender: TObject);

begin

try

label1.Caption:=FloatToStr(StrToFloat(Edit1.Text)/FloatToStr);

except

On EConvertError do

If MessageDLg('Содержимое поля Edit1 равно '+Edit1.Text+#10#13+'Это не число!',mtError,[mbOk],0)=mrOk Then

begin

Edit1.text:='';

Edit2.Text:='';

Edit1.SetFocus;

end;

On EZeroDivide do

If MessageDLg('Делить на ноль нельзя',mtError,[mbOk],0)=mrOk Then

begin

Edit2.text:='';

Edit2.SetFocus;

end;

end;

end;

Задания для самостоятельной работы.

  1. Проанализировать возможности по отладке программ в среде Borland Delphi. Рассмотреть классы исключительных ситуаций и работу с объектами этих классов.

  2. Рассмотреть примеры работы глобального обработчика исключительных ситуаций.

  3. В предшествующих лабораторных работах создать локальные обработчики исключительных ситуаций.

Примеры ошибок для устранения которых можно создать локальные обработчики исключительных ситуаций.

Лабораторная работа № 2:

  • попытка сложения чисел из полей редактирования в тех случаях, когда в поле находится не числовое значение;

  • отрицательные размеры объектов.

Лабораторная работа № 3:

  • ввод в поле калькулятора нечисловых значений и попытка их конвертации в числа;

  • деление на ноль;

  • вычисление арифметического квадратного корня из отрицательного числа;

  • вычисление логарифма от неположительного числа.

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

  • попытка установления связи с файлом имя которого не определено;

  • работа с неоткрытым файлом;

  • указание номера правильного ответа, выходящего за границы допустимого диапазона.

Необходимо создать 5-6 обработчиков исключительных ситуаций, в каждой лабораторной работе должен быть хотя бы один обработчик исключений.

Контрольные вопросы

  1. Виды ошибок возникающих в ходе разработки и эксплуатации программ.

  2. Особенности синтаксических ошибок. Примеры.

  3. Особенности логических ошибок. Примеры.

  4. Особенности динамических ошибок. Примеры.

  5. Как можно получить в окне отладчика отображение значений некоторых переменных (выражений)

  6. Синтаксис и семантика оператора try .. finally.

  7. Синтаксис и семантика оператора try .. except.