Книга: Описание языка PascalABC.NET
Исключения, определяемые пользователем
Исключения, определяемые пользователем
Для определения своего типа исключения достаточно породить класс - наследник класса Exception:
type MyException = class(Exception) end;
Тело класса-исключения может быть пустым, но, тем не менее, новое имя для типа исключения позволит его разграничить с остальными исключениями:
try
...
except
on MyException do
writeln('Целочисленное деление на 0');
on Exception do
writeln('Файл отсутствует');
end;
Исключение может содержать дополнительную информацию, связанную с точкой, в которой произошло исключение:
type
FileNotFoundException = class(Exception)
fname: string;
constructor Create(msg,fn: string);
begin
inherited Create(msg);
fname := fn;
end;
end;
...
procedure ReadFile(fname: string);
begin
ifnot FileExists(fname) then
raisenew FileNotFoundException('Файл не найден',fname);
end;
...
try
...
except
on e: FileNotFoundException do
writeln('Файл '+e.fname+' не найден');
end;
- Повторная генерация исключения
- 1.2.7. Исключения
- Исключения и обработчики исключений
- Рассмотрите возможность исключения необязательной информации перед отправкой данных на устройство
- Ода ошибкам и исключениям
- Исключения, возникающие при выполнении операций над числами с плавающей точкой
- Ошибки и исключения
- Исключения, генерируемые приложением
- ГЛАВА 7 Взаимные исключения и условные переменные
- 10. Лекция: Операторы и структура кода. Исключения
- Исключения
- КАК стать привелигерованным пользователем