58 lines
2 KiB
HTML
58 lines
2 KiB
HTML
<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> |