Книга: Описание языка PascalABC.NET
Примеры обработки исключений
Примеры обработки исключений
Пример 1. Обработка неверного ввода данных.
Рассмотрим программу.
var i: integer;
begin
readln(i);
writeln(i);
writeln('Выполнение программы продолжается');
end.
Если при вводе данных произойдет ошибка (например, мы введем не число), то программа завершится с ошибкой (ошибка ввода), и последующие операторы writeln не будут выполнены.
Перехватим исключение в блоке try:
var i: integer;
begin
try
readln(i);
writeln(i);
except
writeln('Ошибка ввода');
end;
writeln('Выполнение программы продолжается');
end.
На этот раз при возникновении ошибки ввода программа не будет завершена, а выполнение будет передано в блок except, после чего выполнение программы продолжится дальше. Таким образом, в последней программе не выполнится лишь оператор writeln(i).
Если в блоке try могут возникнуть различные исключения, то обычно используется вторая форма блока except с несколькими обработчиками исключений.
Пример 2. Обработка различных исключений.
var a,b: integer;
assign(f,'a.txt');
try
readln(a,b);
reset(f);
c:=a div b;
except
on System.DivideByZeroException do
writeln('Целочисленное деление на 0');
on System.IO.IOException do
writeln('Файл отсутствует');
end;
Часто необходимо совмещать обработку исключений и освобождение ресурсов независимо от того, произошло исключение или нет. В этом случае используются вложенные операторы try ... except и try ... finally.
Пример 3. Вложенные операторы try ... except и try ... finally.
assign(f,'a.txt');
try
reset(f);
try
try
c:=a div b;
except
on System.DivideByZeroException do
writeln('Целочисленное деление на 0');
end;
finally
close(f);
end;
except
on System.IO.IOException do
writeln('Файл отсутствует');
end;
Обратим внимание, что в данном примере исключение, связанное c целочисленным делением на 0, обрабатывается в самом внутреннем блоке try, а исключение, связанное с отсутствующим файлом - в самом внешнем. При этом, если файл был открыт, то независимо от возникновения исключения деления на 0 он будет закрыт.
- Лекция 12. Когда контракт нарушается: обработка исключений
- Примеры получения статистики
- 1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- Примеры
- Генерирование исключений
- Методы грамотной обработки возражений изменению
- ГЛАВА 4 Обработка исключений
- B1.7. Функции обработки ошибок
- ГЛАВА 6. Структурированная обработка исключений
- Подпрограмма обработки прерывания
- Исключения и обработчики исключений
- 4.11.2. Примеры добавления ipchains-правил