Задания для самостоятельной работы.
Лабораторная работа № 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!