Визуальное программирование / Лабораторная работа-6_ИС
.docЛабораторная работа № 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;
Задания для самостоятельной работы.
-
Проанализировать возможности по отладке программ в среде Borland Delphi. Рассмотреть классы исключительных ситуаций и работу с объектами этих классов.
-
Рассмотреть примеры работы глобального обработчика исключительных ситуаций.
-
В предшествующих лабораторных работах создать локальные обработчики исключительных ситуаций.
Примеры ошибок для устранения которых можно создать локальные обработчики исключительных ситуаций.
Лабораторная работа № 2:
-
попытка сложения чисел из полей редактирования в тех случаях, когда в поле находится не числовое значение;
-
отрицательные размеры объектов.
Лабораторная работа № 3:
-
ввод в поле калькулятора нечисловых значений и попытка их конвертации в числа;
-
деление на ноль;
-
вычисление арифметического квадратного корня из отрицательного числа;
-
вычисление логарифма от неположительного числа.
Лабораторная работа № 4:
-
попытка установления связи с файлом имя которого не определено;
-
работа с неоткрытым файлом;
-
указание номера правильного ответа, выходящего за границы допустимого диапазона.
Необходимо создать 5-6 обработчиков исключительных ситуаций, в каждой лабораторной работе должен быть хотя бы один обработчик исключений.
Контрольные вопросы
-
Виды ошибок возникающих в ходе разработки и эксплуатации программ.
-
Особенности синтаксических ошибок. Примеры.
-
Особенности логических ошибок. Примеры.
-
Особенности динамических ошибок. Примеры.
-
Как можно получить в окне отладчика отображение значений некоторых переменных (выражений)
-
Синтаксис и семантика оператора try .. finally.
-
Синтаксис и семантика оператора try .. except.
-