/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/LangGuide/ExceptionHandling/userExceptions.html
58 строк
2 KB
samuraiGH
adding working-tree-encoding attribute (#3325)
07 ноя 2025, 16:12
Не верифицирован
07 ноя 2025, 16:12
cf1fd29
Код
Авторство
О чём код?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../../default.css"> </head> <body> <H1>Исключения, определяемые пользователем</H1> <p>Для определения своего типа исключения достаточно породить класс - наследник класса <code>Exception</code>:</p> <blockquote> <p><code><b>type</b> MyException =<b> class</b>(Exception) <b>end</b>;</code></p> </blockquote> <p>Тело класса-исключения может быть пустым, но, тем не менее, новое имя для типа исключения позволит его разграничить с остальными исключениями:</p> <blockquote> <p><code><b>try</b><br> ...<br> <b>except</b><br> <b>on</b> MyException <b>do</b><br> writeln('Целочисленное деление на 0'); <br> <b>on</b> Exception <b>do</b><br><b> </b>writeln('Файл отсутствует'); <br> <b>end</b>;</code></p> </blockquote> <p>Исключение может содержать дополнительную информацию, связанную с точкой, в которой произошло исключение:</p> <blockquote> <p><code><b>type</b> <br> FileNotFoundException = <b>class</b>(Exception)<b><br> </b> fname: <b>string</b>;<br> <b> constructor</b> Create(msg,fn: <b>string</b>);<br> <b> begin</b><br> <b> inherited</b> Create(msg);<br> fname := fn;<br> <b> end</b>;<b><br> end</b>;</code></p> <p><code>...</code></p> <p><code><b>procedure </b>ReadFile(fname: <b>string</b>);<br> <b>begin</b><br> <b>if</b> <b>not</b> FileExists(fname) <b>then</b><br> <b>raise</b> <b>new</b> FileNotFoundException('Файл не найден',fname);<br> <b>end</b>;</code></p> <p><code>...</code></p> <p><code><b>try</b><br> ...<br> <b>except</b><br> <b>on</b> e: FileNotFoundException <b>do</b><br><b> </b>writeln('Файл '+e.fname+' не найден'); <br> <b>end</b>;</code></p> </blockquote> </body> </html>