Книга: Описание языка 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.242. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз