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

Лабораторная работа № 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 обработчиков исключительных ситуаций, в каждой лабораторной работе должен быть хотя бы один обработчик исключений.

 

 

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

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

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

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

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

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

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

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

8.

 


Дата добавления: 2021-11-30; просмотров: 19; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!