Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные среды АСОИУ / L07
.TXT я22.6. €бЄ«о票п
я_я11. ‘ ¬ п ®Ўй п е а ЄвҐаЁбвЁЄ ЁбЄ«о票©
€бЄ«озҐЁп ®вҐбҐл ¬Ё Є бЁеа®л¬ ¬Ґв®¤ ¬ § ¬Ґл
Є®вҐЄбв , в.Є. ҐЁ§ўҐб⥠¬®¬Ґв ў®§ЁЄ®ўҐЁп ЁбЄ«о票п.
ќв® бў®©бвў® бЎ«Ё¦ Ґв ЁбЄ«о票п б ЇаҐалў Ёп¬Ё.
ђ §«ЁзЁҐ б®бв®Ёв ў ⮬, зв® ЇаҐалў ЁҐ ўл§лў Ґвбп ўҐиҐ©
ЇаЁзЁ®© - нв® бЁЈ « ®в ўҐиҐ© б।л, ЁбЄ«о票Ґ - нв®
ўгваҐпп ЇаЁзЁ б¬Ґл Є®вҐЄбв , бўп§ п б 室®¬ ўлЇ®«ҐЁп
ЁбвагЄжЁ© Їа®Ја ¬¬л.
Џ®¤ ЁбЄ«о票Ґ¬ Ї®Ё¬ ов бЁЈ « ®Ў ®вЄ«®ҐЁЁ ў ўлЇ®«ҐЁЁ
ЁбвагЄжЁЁ. ЏаЁзЁ ¬Ё ЁбЄ«о票© ¬®Јгв Ўлвм б«Ґ¤гойЁҐ:
- ҐЇа ўЁ«млҐ ¤ лҐ ( ЇаЁ¬Ґа, ¤Ґ«ҐЁҐ ®«м);
- Ї®ЇлвЄ ўлЇ®«ҐЁп ЁбвагЄжЁЁ, Ґ ᮮ⢥вбвўго饩 га®ўо
§ йЁвл;
- ҐўлЇ®«пҐ¬ п ЁбвагЄжЁп ( ЇаЁ¬Ґа, ¤аҐб ўҐ Ї ¬пвЁ).
ЏаЁ Ї®пў«ҐЁЁ ЁбЄ«озҐЁп Їа®жҐбб®а ўл¤ Ґв бЁЈ « ЇаҐалў Ёп
б ®¬Ґа®¬, ᮮ⢥вбвўгойЁ¬ ®¬Ґаг ЇаЁзЁл ЁбЄ«о票п. ’.Ґ.
ЁбЄ«озҐЁп ®Ўа Ў влў овбп Є Є ЇаҐалў Ёп, Ё¬Ґ®, Ї® ®¬Ґаг
ЁбЄ«озҐЁп Їа®жҐбб®а ®Ўа й Ґвбп Є в Ў«ЁжҐ ЇаҐалў Ё© Ё зҐаҐ§ ҐҐ
室Ёв Їа®жҐ¤гаг - ®Ўа Ў®взЁЄ ЁбЄ«о票п. Ћв«ЁзЁҐ ЁбЄ«о票© ®в
ЇаҐалў Ё© б®бв®Ёв ў ⮬, зв® Ї®б«Ґ ўлЇ®«ҐЁп ®Ўа Ў®взЁЄ
ЁбЄ«о票п гЇа ў«ҐЁҐ, Є Є Їа ўЁ«®, Ґ ў®§ўа й Ґвбп ў в®зЄг
ў®§Ўг¦¤ҐЁп ЁбЄ«о票п.
ЊҐе Ё§¬ ЁбЄ«о票© Ёб室® бгйҐбвўгҐв га®ўҐ аеЁвҐЄвгал
Їа®жҐбб®а Ё ¤ «ҐҐ а §ўЁв ¤«п Їа®Ја ¬¬ле б। п§лЄ®ў ўлб®Є®Ј®
га®ўп. ђ бᬮваЁ¬ б з « ЁбЄ«озҐЁп Ё§Є®¬ га®ўҐ.
я_я12. €бЄ«озҐЁп Ё§Є®¬ га®ўҐ
€бЄ«озҐЁп Ё§Є®¬ га®ўҐ а бᬮваЁ¬ ЇаЁ¬ҐаҐ
аеЁвҐЄвгал 386 Їа®жҐбб®а . ЂаеЁвҐЄвга® бгйҐбвўгҐв ап¤ ®иЁЎ®зле
бЁвг жЁ©, ў Є®в®але Їа®жҐбб®а ў®§Ўг¦¤ Ґв ЇаҐалў Ёп,
ЁвҐаЇаҐвЁагҐ¬лҐ Є Є ЁбЄ«о票п. ЌЁ¦Ґ ЇаЁўҐ¤Ґ ЇҐаҐзҐм нвЁе
бЁвг жЁ©:
Ќ®¬Ґа ЁбЄ«озҐЁп ЏаЁзЁ
0 ЋиЁЎЄ ¤Ґ«ҐЁп
1 Џ®и Ј®ў®Ґ ЇаҐалў ЁҐ ЇаЁ ®в« ¤ЄҐ
2 ЌҐ¬ бЄЁа㥬®Ґ ЇаҐалў ЁҐ
3 Ћбв ®ў ЇаЁ ®в« ¤ЄҐ
4 ЏҐаҐЇ®«ҐЁҐ
5 ‚л室 § Ја Ёжл ¬ ббЁў
6 ЌҐ¤®ЇгбвЁ¬л© Є®¤ ®ЇҐа жЁЁ
7 ЋвбгвбвўЁҐ б®Їа®жҐбб®а
8 „ў®© п ®иЁЎЄ
9 ЏаҐўл襨Ґ ᥣ¬Ґв б®Їа®жҐбб®а®¬
10 ЌҐўҐал© бҐЈ¬Ґв б®бв®пЁп § ¤ зЁ
11 ‘ҐЈ¬Ґв ®вбгвбвўгҐв
12 ЋиЁЎЄ б⥪
13 ЋЎй п ®иЁЎЄ § йЁвл
14 ‘ва Ёз п ®иЁЎЄ
15 ђҐ§Ґаў
16 ЋиЁЎЄ б®Їа®жҐбб®а
ЋЇҐа жЁ® п б। ЎҐаҐв бҐЎп ®Ўа Ў®вЄг ЁбЄ«о票©. …б«Ё
нв® ®иЁЎЄ Їа®Ја ¬¬л, ЇаЁ¬Ґа, ¤Ґ«ҐЁҐ ®«м, в® Їа®Ја ¬¬
ў аЁ©® § ўҐаи Ґвбп. ‚ ҐЄ®в®але б«гз пе, Є®Ј¤ ў®§¬®¦®
ЁбЇа ў«ҐЁҐ ®иЁЎЄЁ, Ї®б«Ґ ҐҐ ЁбЇа ў«ҐЁп Їа®Ја ¬¬ Їа®¤®«¦ Ґв
ўлЇ®«пвмбп. ’ЁЇЁзл¬ ЇаЁ¬Ґа®¬ пў«пҐвбп ЁбЄ«о票Ґ 11 Ї®
®вбгвбвўЁо ᥣ¬Ґв . ‚ н⮬ б«гз Ґ ®вбгвбвўгойЁ© ᥣ¬Ґв ЁйҐвбп
¤ЁбЄҐ, § Јаг¦ Ґвбп ў Ї ¬пвм Ё Їа®Ја ¬¬ Їа®¤®«¦ Ґв а Ў®вг.
‚ б«гз Ґ ў®§ЁЄ®ўҐЁп ®иЁЎЄЁ, Ґ ЇаҐ¤гᬮв८©
ЁбЄ«о票ﬨ 0 - 12 Ё 14 - 16, ў®§ЁЄ Ґв ЁбЄ«о票Ґ 13 - ®Ўй п
®иЁЎЄ § йЁвл. ќв® ЇҐз «м® Ё§ўҐбв п General protection fault,
з бв® ў®§ЁЄ ой п ў Їа®Ја ¬¬ е Ї®¤ Windows. ‚ҐиЁҐ ЇаЁзЁл нв®©
®иЁЎЄЁ ¬®Јгв Ўлвм б ¬л¬Ё а §®®Ўа §л¬Ё. ЌЁ¦Ґ ЇаЁўҐ¤Ґ ЇҐаҐзҐм
вЁЇЁзле ЇаЁзЁ ў®§ЁЄ®ўҐЁп нв®Ј® ЁбЄ«о票п:
1) ЇҐаҐ¤ з гЇа ў«ҐЁп ҐЁбЇ®«пҐ¬®¬г ᥣ¬Ґвг;
2) § Јаг§Є ॣЁбва SS ᥫҐЄв®а®¬ ЁбЇ®«пҐ¬®Ј® ᥣ¬Ґв Ё«Ё
ᥣ¬Ґв ЎҐ§ а §аҐиҐЁп § ЇЁбЁ:
3) § Јаг§Є SS, DS, ES, FS, GS ᥫҐЄв®а®¬ бЁб⥬®Ј®
ᥣ¬Ґв ;
4) § Јаг§Є DS, ES, FS, GS ᥫҐЄв®а®¬ ЁбЇ®«пҐ¬®Ј® ᥣ¬Ґв ,
Є®в®ал© Ґ пў«пҐвбп зЁв Ґ¬л¬;
5) ЇҐаҐ¤ з гЇа ў«ҐЁп б аг襨Ґ¬ Їа ўЁ« ЇаЁўЁ«ҐЈЁ©;
6) § Јаг§Є CS, SS, DS, ES, FS, GS ᥫҐЄв®а®¬, гЄ §лў ойЁ¬
«®Є «мго в Ў«Ёжг ¤ҐбЄаЁЇв®а®ў, Є®Ј¤ нв в Ў«Ёж Ґ
®ЇаҐ¤Ґ«Ґ ;
7) § Јаг§Є SS г«Ґўл¬ ᥫҐЄв®а®¬;
8) ЇаҐўл襨Ґ ЇаҐ¤Ґ« ᥣ¬Ґв ;
9) ЇаҐўл襨Ґ ЇаҐ¤Ґ« в Ў«Ёжл;
10) Ї®ЇлвЄ § ЇЁбЁ ў ᥣ¬Ґв, а §аҐиҐл© в®«мЄ® ¤«п з⥨п;
11) Ї®ЇлвЄ звҐЁп ЎҐ§ а §аҐиҐЁп Ё§ ЁбЇ®«пҐ¬®Ј® ᥣ¬Ґв ;
12) Ї®ЇлвЄ ¤®бвгЇ Є Ї ¬пвЁ, Є®Ј¤ ЁбЇ®«м§гҐ¬л© ᥣ¬Ґвл©
ॣЁбва ᮤҐа¦Ёв г«м-ᥫҐЄв®а;
13) Ї®ЇлвЄ гбв ®ўЁвм бва Ёзл© ¬Ґе Ё§¬ ў ॠ«м®¬ ०Ё¬Ґ;
14) ҐЇа ўЁ«м п ®Ўа Ў®вЄ ЇаҐалў Ёп ў ०Ё¬Ґ V86;
15) ЇаҐўл襨Ґ ¬ ЄбЁ¬ «м®© ¤«Ёл Є®¬ ¤л.
Џ®б«Ґ в ЄЁе ®иЁЎ®Є Їа®Ја ¬¬ ў аЁ©® § ўҐаи Ґв бў®о а Ў®вг.
€®Ј¤ , ®б®ЎҐ® ў ЁвҐа ЄвЁўле Їа®Ја ¬¬ е, Ґбвм
ў®§¬®¦®бвм ЁбЇа ўЁвм ®иЁЎЄг Ё ўҐагвмбп Є Ї®ўв®аҐЁо ¤Ґ©бвўЁп,
ЇаЁ¬Ґа, ЇаЁ ¤Ґ«ҐЁЁ ®«м ¬®¦Ґв Ўлвм Ґбвм ў®§¬®¦®бвм
Ё§¬ҐЁвм ¤Ґ«ЁвҐ«м. ‚ н⮬ б«гз Ґ ҐжҐ«Ґб®®Ўа §® ў аЁ©®
§ ўҐаи вм а Ў®вг Їа®Ја ¬¬л. Ќ «ЁзЁҐ Ї®¤®Ўле бЁвг жЁ© пў«пҐвбп
ЇҐаў®© ЇаЁзЁ®© Ї®пў«ҐЁп Їа®Ја ¬¬ле б।бвў ®Ўа Ў®вЄЁ
ЁбЄ«о票©.
‚в®а®© ЇаЁзЁ®© Ї®пў«ҐЁп Їа®Ја ¬¬ле б।бвў ®Ўа Ў®вЄЁ
ЁбЄ«о票© пў«пҐвбп бв६«ҐЁҐ Ї®ўлбЁвм Ј«п¤®бвм Їа®Ја ¬¬л,
в.Ґ. ЁбЄ«о票п а бб¬ ваЁў овбп Є Є ®¤® Ё§ б।бвў
бвагЄвгаЁ§ жЁЁ Їа®Ја ¬¬®Ј® ®ЎҐбЇҐзҐЁп.
ЌЁ¦Ґ а бᬮваЁ¬ Їа®Ја ¬¬лҐ б।бвў ®Ўа Ў®вЄЁ
ЁбЄ«озЁвҐ«мле бЁвг жЁ©.
я_я13. €бЄ«озҐЁп ў Їа®Ја ¬¬ле б। е
‚ ¦® ®в¬ҐвЁвм, зв® аҐзм ¤ «ҐҐ Ї®©¤Ґв в®«мЄ® ® вҐе
ЁбЄ«озЁвҐ«мле бЁвг жЁпе, Є®в®алҐ Їа®Ја ¬¬Ёбв § Ґв, Є Є
ЁбЇа ўЁвм. …б«Ё Їа®Ја ¬¬Ёбв Ґ § Ґв, Є Є ЁбЇа ўЁвм
ЁбЄ«озЁвҐ«мго бЁвг жЁо (нв® Є Є Їа ўЁ«®, ®в®бЁвбп Є ЁбЄ«о票п¬
вЁЇ GPF Ё Є® ўбҐ¬ ЁбЄ«озҐЁп¬ Ё§Є®Ј® га®ўп, Єа®¬Ґ ¤Ґ«ҐЁп
®«м), в® ®Ўа Ў®вЄг нв®Ј® ЁбЄ«озҐЁп Ґ®Ўе®¤Ё¬® ®бв ўЁвм бЁб⥬Ґ.
Ља®¬Ґ в®Ј®, аҐзм §¤Ґбм Ї®©¤Ґв ® ®ў®© (®в®бЁвҐ«м®)
Є®жҐЇжЁЁ ®Ўа Ў®вЄЁ зЁбв® Їа®Ја ¬¬ле ®иЁЎ®Є - ®Ўа Ў®вЄҐ
га®ўҐ ЁбЄ«о票©, Є®Ј¤ ® «ЁзЁЁ ®иЁЎЄЁ Їа®Ја ¬¬ бЁЈ «Ё§ЁагҐв
ЁбЄ«озЁвҐ«м®© бЁвг жЁҐ©, зв® Ї®ўли Ґв Ј«п¤®бвм Ё
бвагЄвгаЁа®ў ®бвм Їа®Ја ¬¬л.
„«п в®Ј® зв®Ўл Їа®Ја ¬¬ ¬®Ј« ᮧ¤ ў вм ЁбЄ«озЁвҐ«млҐ
бЁвг жЁЁ Ё 㬥вм Ёе ®Ўа Ў влў вм бЁб⥬ Їа®Ја ¬¬Ёа®ў Ёп ¤®«¦
®Ў« ¤ вм бЇҐжЁ «мл¬Ё б।бвў ¬Ё, ® Є®в®але аҐзм Ї®©¤Ґв Ё¦Ґ.
’ ЄЁ¬Ё б।бвў ¬Ё ®Ў« ¤ ов п§лЄЁ Ђ¤ , Њ®¤г« -2, ‘Ё++ Ё ⥯Ґам
®Ў« ¤ Ґв ®ў п ўҐабЁп Џ бЄ «п - „Ґ«мдЁ.
„ ¤Ё¬ ®Ўйго е а ЄвҐаЁбвЁЄг ЁбЄ«о票© б в®зЄЁ §аҐЁп п§лЄ
ўлб®Є®Ј® га®ўп.
ЏаЁ ў®§ЁЄ®ўҐЁЁ ЁбЄ«озҐЁп ®а¬ «м®Ґ ўлЇ®«ҐЁҐ Їа®Ја ¬¬л
ЇаҐЄа й Ґвбп Ё ЁЁжЁЁагҐвбп а Ў®в ®Ўа Ў®взЁЄ ЁбЄ«о票п. Џ®б«Ґ
§ ўҐаиҐЁп ®Ўа Ў®вЄЁ ЁбЄ«озҐЁп ўлЇ®«ҐЁҐ Їа®Ја ¬¬л Ґ
ў®§®Ў®ў«пҐвбп ў в®зЄҐ ў®§ЁЄ®ўҐЁп ЁбЄ«о票п. Џа®жҐбб
гбв ®ў«ҐЁп бўп§Ё ¬Ґ¦¤г Є®ЄаҐв®© ®иЁЎ®з®© бЁвг жЁҐ© Ё
ᮮ⢥вбвўгойЁ¬ ®Ўа Ў®взЁЄ®¬ §лў Ґвбп ў®§Ўг¦¤ҐЁҐ¬ ЁбЄ«о票п.
ЏаЁ ў®§Ўг¦¤ҐЁЁ ®ЇҐа в®ал, ®ЇЁб лҐ ў ®Ўа Ў®взЁЄҐ, ўлЇ®«повбп.
‘ ¬ ®Ўа Ў®взЁЄ ЁбЄ«о票© Ї®¬Ґй Ґвбп ў Є®жҐ Ў«®Є Їа®Ја ¬¬л.
…б«Ё ў ¤ ®¬ Ў«®ЄҐ Ґ ®ЇЁб ®Ўа Ў®взЁЄ ЁбЄ«озЁвҐ«м®© бЁвг жЁЁ,
в® ®Ўа Ў®вЄ ЁбЄ«озҐЁп ЇҐаҐ¤ Ґвбп ў Ў«®Є, ўҐиЁ© Ї® ®в®иҐЁо Є
⮬㠡«®Єг, ў Є®в®а®¬ ў®§Ўг¦¤Ґ® ЁбЄ«о票Ґ, Ё в.¤. ’ Є п
ЇҐаҐ¤ з ЁбЄ«озҐЁп §лў Ґвбп а бЇа®бва ҐЁҐ¬ ЁбЄ«о票п. …б«Ё
Ё ў б ¬®¬ ўҐиҐ¬ Ў«®ЄҐ Їа®Ја ¬¬л ®вбгвбвўгҐв ®Ўа Ў®взЁЄ, в®
®Ўа Ў®вЄ ЁбЄ«озҐЁп ЇҐаҐ¤ Ґвбп б।Ґ Ё ўлЇ®«ҐЁҐ Їа®Ја ¬¬л ў
н⮬ б«гз Ґ ў аЁ©® § ўҐаи Ґвбп.
’а ¤ЁжЁ®® ¤«п Їа®ўҐаЄЁ «ЁзЁп ®иЁЎ®з®© бЁвг жЁЁ
ЁбЇ®«м§говбп пўлҐ Їа®ўҐаЄЁ, Є®в®алҐ § Ја®¬®¦¤ ов Їа®Ја ¬¬г.
ЏаЁўҐ¤Ґ¬ ЇаЁ¬Ґа а Ў®вл б д ©«®¬ ў Џ бЄ «Ґ. Џ®б«Ґ¤®ў ⥫м®бвм
а Ў®вл б д ©«®¬ ўлЈ«п¤Ёв б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure FileWork;
Begin
ЋвЄалвм д ©«;
Џа®зЁв вм ¤ лҐ Ё§ д ©« ;
‡ ЇЁб вм ¤ лҐ ў д ©«;
‡ Єалвм д ©«;
End {FileWork};
Ќ Є ¦¤®¬ и ЈҐ ¬®¦Ґв ў®§ЁЄгвм ®иЁЎЄ ўў®¤ -ўлў®¤ ,
ЇаЁў®¤пй п Є ў аЁ©®¬г § ўҐаиҐЁо Їа®Ја ¬¬л. Ќ ЇаЁ¬Ґа, д ©«
®вбгвбвўгҐв Ё«Ё зЁв Ґ¬ ¤ лҐ § Є®ж®¬ д ©« .
—в®Ўл Їа®Ја ¬¬ Ґ § ўҐаи « бм ў аЁ©®, ¤® ®вЄ«озЁвм
Їа®ўҐаЄг Їа ўЁ«м®бвЁ ўлЇ®«ҐЁп ®ЇҐа жЁ© ўў®¤ -ўлў®¤ б।®©
Џ бЄ «п (Є«оз Є®¬ЇЁ«пв®а {$I-}) Ё Ї®б«Ґ Є ¦¤®© ®ЇҐа жЁЁ
Їа®ўҐапвм § 票Ґ ЇҐаҐ¬Ґ®© IOResult. ’® Ґбвм ®д®а¬«пвм
Їа®Ја ¬¬г б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure FileWork;
Begin
ЋвЄалвм д ©«;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
Џа®зЁв вм ¤ лҐ Ё§ д ©« ;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
‡ ЇЁб вм ¤ лҐ ў д ©«;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
‡ Єалвм д ©«;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
End {FileWork};
Џ®б«Ґ Є ¦¤®© ®ЇҐа жЁЁ ўў®¤ -ўлў®¤ Ґ®Ўе®¤Ё¬® ¤Ґ« вм пўлҐ
Їа®ўҐаЄЁ. …б«Ё в ЄЁе ®ЇҐа жЁ© ¬®Ј®, в® Ја®¬®§¤Є®бвм Їа®Ја ¬¬л
бв ®ўЁвбп ®зҐўЁ¤®© Ё Ј«п¤®бвм १Є® бЁ¦Ґ .
ЋЎа Ў®взЁЄ ЁбЄ«о票© Ї®§ў®«пҐв ®в¤Ґ«Ёвм ®ЇҐа в®ал а Ў®вл б
д ©«®¬ ®в ®ЇҐа в®а®ў Їа®ўҐаЄЁ ®иЁЎ®з®© бЁвг жЁЁ Ё бЄ®¬Ї®®ў вм
Їа®ўҐаЄЁ ў ®в¤Ґ«м®© з бвЁ Їа®Ја ¬¬л, Ґ ЇҐаҐ¬Ґ¦ п Ёе б
®ЇҐа в®а ¬Ё, ў Є®в®але ¬®Јгв ў®§ЁЄ вм ®иЁЎЄЁ. ‚ ®ЎйҐ¬ ўЁ¤Ґ нв®
Ўг¤Ґв ўлЈ«п¤Ґвм ¤«п 襣® ЇаЁ¬Ґа б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure FileWork;
Begin
ЋвЄалвм д ©«;
Џа®зЁв вм ¤ лҐ Ё§ д ©« ;
‡ ЇЁб вм ¤ лҐ ў д ©«;
‡ Єалвм д ©«;
Exception :
ЋЇҐа в®ал ®Ўа Ў®вЄЁ ЁбЄ«о票п, ЇаЁ¬Ґа,
б®®ЎйҐЁҐ Ї®«м§®ў вҐ«о ®Ў ®иЁЎЄҐ;
End {FileWork};
‚ЇҐаўлҐ Ї®¤®Ўл© бЇ®б®Ў ®Ўа Ў®вЄЁ ®иЁЎ®зле бЁвг жЁ© Ўл«
ЇаҐ¤«®¦Ґ ў п§лЄҐ ўлб®Є®Ј® га®ўп Ђ¤ Ё ¤ «ҐҐ Ўл« а бЇа®бва Ґ
Ў®«ҐҐ иЁа®Є® ЁбЇ®«м§гҐ¬лҐ п§лЄЁ. „«п Ё««обва жЁЁ ®Ўй®бвЁ
вҐе®«®ЈЁЁ ®Ўа Ў®вЄЁ ЁбЄ«о票© ў а §«Ёзле п§лЄ е ўлб®Є®Ј®
га®ўп б з « Єа вЄ® ®ЇЁиҐ¬ ®Ўа Ў®вЄг ЁбЄ«о票© ў Ђ¤Ґ, § ⥬
Ў®«ҐҐ Ї®¤а®Ў® а бᬮваЁ¬ ЇаЁжЁЇл ॠ«Ё§ жЁЁ ®Ўа Ў®вЄЁ
ЁбЄ«о票© ў „Ґ«мдЁ.
я_я14. ЋЎа Ў®вЄ ЁбЄ«о票© ў Ђ¤Ґ
ђ Ў®в б ЁбЄ«о票ﬨ ўЄ«оз Ґв ў ᥡп ап¤ нв Ї®ў.
1) ЋЇЁб ЁҐ ЁбЄ«о票п:
€¬п_ЁбЄ«о票п : exception;
Ќ ЇаЁ¬Ґа: My_error : exception;
‘гйҐбвўгҐв Ў®а ЇаҐ¤®ЇаҐ¤Ґ«Ґле ЁбЄ«о票©, ЁбЇ®«м§®ў ЁҐ
Є®в®але Ґ вॡгҐв ЇаҐ¤ў аЁвҐ«м®Ј® ®ЇЁб Ёп:
CONSTRAINT_ERROR ЋиЁЎЄ ўл室 § Ја Ёжл ¬ ббЁў Ё«Ё ббл«Є
Ґ®ЇаҐ¤Ґ«Ґл© гЄ § ⥫м
NUMERIC_ERROR ЂаЁд¬ҐвЁзҐбЄ п ®иЁЎЄ
PROGRAM_ERROR ЌҐ®Ўа Ў влў Ґ¬ п ®иЁЎЄ
STORAGE_ERROR ЋиЁЎЄ Ї ¬пвЁ
TASKING_ERROR ЋиЁЎЄ ў§ Ё¬®¤Ґ©бвўЁп § ¤ з
2) ‚®§Ўг¦¤ҐЁҐ ЁбЄ«о票п
‚®§Ўг¦¤ҐЁҐ ЁбЄ«озҐЁп Їа®Ё§ў®¤Ёвбп б Ї®¬®ймо ®ЇҐа в®а
raise:
raise €¬п_ЁбЄ«о票п;
Ќ ЇаЁ¬Ґа,
if ЋиЁЎЄ then
raise My_error;
end if;
3) ЋЇЁб ЁҐ ®Ўа Ў®взЁЄ ЁбЄ«о票п
ЋЎа Ў®взЁЄ ЁбЄ«озҐЁп Ї®¬Ґй Ґвбп ў Є®жҐ Ї®¤Їа®Ја ¬¬л ўб«Ґ¤
§ Є«озҐўл¬ б«®ў®¬ exception. ЋЎа Ў®взЁЄ ЁбЄ«озҐЁп Ё¬ҐҐв
б«Ґ¤гойго д®а¬г:
when €¬п_ЁбЄ«о票п => Џ®б«Ґ¤®ў ⥫м®бвм ®ЇҐа в®а®ў;
Ќ ЇаЁ¬Ґа,
when My_error => ‚лў®¤ нЄа б®®ЎйҐЁп ®Ў ®иЁЎЄҐ;
‚¬Ґбв® Ё¬ҐЁ ЁбЄ«озҐЁп Ї®б«Ґ б«®ў when ¬®¦Ґв Ї®пўЁвмбп
Є«о祢®Ґ б«®ў® others, Є®в®а®Ґ § ¤ Ґв ўбҐ ®бв «млҐ ЁбЄ«о票п,
Ґ ®Ўа Ў®в лҐ а ҐҐ. Ќ ЇаЁ¬Ґа, б®ў®ЄгЇ®бвм ®Ўа Ў®взЁЄ®ў
ЁбЄ«о票© ¬®¦Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure Example;
Begin
Џ®б«Ґ¤®ў ⥫м®бвм ®ЇҐа в®а®ў, ¬®ЈгйЁе ў®§Ўг¤Ёвм
ЁбЄ«о票Ґ;
exception
when My_error => ‚лў®¤ нЄа б®®ЎйҐЁп ®Ў ®иЁЎЄҐ
My_error;
ЋЎа Ў®вЄ ®иЁЎЄЁ My_error;
when others => ‚лў®¤ нЄа б®®ЎйҐЁп ®
ҐЁ§ўҐбв®© ®иЁЎЄҐ;
raise;
End Example;
ЏаЁ Їа ўЁ«м®¬ ўлЇ®«ҐЁЁ Їа®Ја ¬¬л ®ЇҐа в®ал, б«Ґ¤гойЁҐ §
б«®ў®¬ exception, Ґ ўлЇ®«повбп. ЏаЁ ў®§Ўг¦¤ҐЁЁ ЁбЄ«о票п
Є ЄЁ¬-«ЁЎ® ®ЇҐа в®а®¬, Ґ ўлЇ®«повбп ®ЇҐа в®ал, б«Ґ¤гойЁҐ ¤®
б«®ў exception, ў¬Ґбв® Ёе зЁ Ґвбп ўлЇ®«ҐЁҐ ®ЇҐа в®а®ў
®Ўа Ў®взЁЄ . …б«Ё ®Ўа Ў®взЁЄ ®вбгвбвўгҐв, в® ЁбЄ«о票Ґ
ў®§Ўг¦¤ Ґвбп ў ®еў влў о饬 Ў«®ЄҐ. …б«Ё Ё§ўҐбв®, Є Є ®Ўа Ў®в вм
ЁбЄ«озЁвҐ«мго бЁвг жЁо, в® ® ®Ўа Ў влў Ґвбп. …б«Ё Ґ Ё§ўҐбв®,
Є Є нв® Ё¬ҐҐв ¬Ґбв® ў б«гз Ґ ЇҐаҐе®¤ Є ®ЇҐа в®аг "when others",
в® ўлў®¤Ёвбп б®®ЎйҐЁҐ ®Ў ®иЁЎЄҐ Ё Їа®Ё§ў®¤Ёвбп Ї®ўв®а®Ґ
ў®§Ўг¦¤ҐЁҐ ЁбЄ«озҐЁп ¤«п ЇҐаҐ¤ зЁ ®Ўа Ў®вЄЁ ў® ўҐиЁ© Ў«®Є.
‚ § Є«о票Ё ЇаЁўҐ¤Ґ¬ ЇаЁ¬Ґа § йЁвл ®в ЁбЄ«озЁвҐ«м®©
бЁвг жЁЁ ЇаЁ а Ў®вҐ б д ©«®¬. Ќ ЇаЁ¬Ґа, ¬л ®вЄал«Ё д ©« Ё
Їа®Ё§ў®¤Ё¬ б Ё¬ ®ЇҐа жЁЁ ўў®¤ -ўлў®¤ , § ⥬ § Єалў Ґ¬ ҐЈ®.
…б«Ё ў® ўаҐ¬п ўлЇ®«ҐЁп ®ЇҐа жЁ© ўў®¤ -ўлў®¤ ў®§Ўг¦¤ Ґвбп
ЁбЄ«о票Ґ, в® Ї®бЄ®«мЄг ҐбвҐб⢥ п Ї®б«Ґ¤®ў ⥫м®бвм ¤Ґ©бвўЁ©
ЇаҐЄа й Ґвбп, д ©« ¬®¦Ґв ®бв вмбп Ґ§ Єалвл¬ Ё Є ЄЁҐ-в® ¤ лҐ
¬®Јгв ®Є § вмбп Ї®вҐапл¬Ё. Ђ «®ЈЁз п бЁвг жЁп ¬®¦Ґв Ё¬Ґвм
¬Ґбв® б ¤Ё ¬ЁзҐбЄ®© Ї ¬пвмо - Ї ¬пвм ўл¤Ґ«пҐвбп, § ⥬
Їа®Ёб室Ёв ЁбЄ«о票Ґ Ё Ї ¬пвм ®Є §лў Ґвбп Ґў®§ўа 饮©
бЁб⥬Ґ, в.Є. агиҐ ҐбвҐбвўҐл© Ї®а冷Є б«Ґ¤®ў Ёп ®ЇҐа в®а®ў
Їа®Ја ¬¬л.
‘«Ґ¤гойЁ© ЇаЁ¬Ґа Ї®Є §лў Ґв ў аЁ в § йЁвл ®в Ї®¤®Ў®©
бЁвг жЁЁ б Ї®¬®ймо ®Ўа Ў®взЁЄ ЁбЄ«о票©.
Procedure File_Work;
Begin
ЋвЄалвЁҐ д ©« ; -- 1
Begin
ђ Ў®в б д ©«®¬; -- 2
exception
when others =>
‡ ЄалвЁҐ д ©« ; -- 4
raise;
end;
‡ ЄалвЁҐ д ©« ; -- 3
End File_Work;
…б«Ё ЁбЄ«о票Ґ Ґ ў®§Ўг¦¤ Ґвбп ў Їа®жҐ¤гаҐ, в® Ї®а冷Є
б«Ґ¤®ў Ёп ®ЇҐа в®а®ў б«Ґ¤гойЁ©: 1, 2, 3. …б«Ё ў®§Ўг¦¤ Ґвбп
ЁбЄ«о票Ґ б।Ё ®ЇҐа в®а®ў 2, в® ®ЇҐа в®а®¬ 4 § Єалў Ґвбп д ©« Ё
Їа®Ёб室Ёв Ї®ўв®а®Ґ ў®§Ўг¦¤ҐЁҐ ЁбЄ«озҐЁп ¤«п ЇҐаҐ¤ зЁ ҐЈ®
®Ўа Ў®вЄг ў® ўҐиЁҐ Ў«®ЄЁ. ’ ЄЁ¬ ®Ўа §®¬ д ©« Ўг¤Ґв § Єалў вмбп
Є Є ЇаЁ ®вбгвбвўЁҐ ЁбЄ«о票©, в Є Ё ЇаЁ Ёе «ЁзЁЁ.
Љ Є ¬л ᥩз б гўЁ¤Ё¬, ⥠¦Ґ б ¬лҐ Є®жҐЇжЁЁ ЁбЄ«о票©
§ «®¦Ґл Ё ў б ¬®¬ ЇҐаҐ¤®ў®¬ ᥣ®¤пиЁ© ¤Ґм Їа®Ја ¬¬®¬
б।б⢥ „Ґ«мдЁ.
я_я15. ЋЎа Ў®вЄ ЁбЄ«о票© ў „Ґ«мдЁ
„Ґ«мдЁ ў бв®п饥 ўаҐ¬п пў«пҐвбп б ¬®© ЇҐабЇҐЄвЁў®© б।®©
Їа®Ја ¬¬Ёа®ў Ёп, Ї®н⮬г а бᬮваЁ¬ ®Ўа Ў®вЄг ЁбЄ«о票© ў
„Ґ«мдЁ Ў®«ҐҐ Ї®¤а®Ў®.
€бЄ«о票Ґ ў „Ґ«мдЁ ®бЁв ¤ў®пЄЁ© е а ЄвҐа. ‘ ®¤®© бв®а®л
- нв® ва ¤ЁжЁ®®Ґ Ї®пвЁҐ - бЁЈ « ®Ў ®иЁЎ®з®¬ ®вЄ«®ҐЁЁ ў
ўлЇ®«ҐЁЁ ®ЇҐа в®а®ў, б ¤агЈ®© бв®а®л - нв® ®ЎкҐЄв,
ᮤҐа¦ йЁ© Ёд®а¬ жЁо ® е а ЄвҐаҐ Ё ¬Ґб⥠®иЁЎЄЁ. ’® Ґбвм §¤Ґбм
Ї®пвЁҐ ЁбЄ«озҐЁп Є« ¤лў Ґвбп ®ЎкҐЄв®-®аЁҐвЁа®ў п
Є®жҐЇжЁп. ЏаЁ ў®§ЁЄ®ўҐЁЁ ЁбЄ«о票п ᮧ¤ Ґвбп нЄ§Ґ¬Ї«па
®ЎкҐЄв -ЁбЄ«о票п б Ї®¬®ймо ¬Ґв®¤ -Є®бвагЄв®а , Ї®б«Ґ
®Ўа Ў®вЄЁ нЄ§Ґ¬Ї«па ®ЎкҐЄв -ЁбЄ«о票п а §аги Ґвбп
¬Ґв®¤®¬-¤ҐбвагЄв®а®¬. ЏаЁзҐ¬ а §аг襨Ґ ўбҐЈ¤ Їа®Ё§ў®¤Ёвбп
ўв®¬ вЁзҐбЄЁ б ¬®© б।®©.
Ќ б ¬®¬ ўҐа奬 га®ўҐ ўў®¤Ёвбп Ї®пвЁҐ ¤Ґ¦®Ј®
ЇаЁ«®¦ҐЁп. Ќ ¤Ґ¦®Ґ ЇаЁ«®¦ҐЁҐ Ґ ўл«Ґв Ґв ў б।㠯ਠЄ ¦¤®©
®иЁЎЄҐ, Їлв Ґвбп ЁбЇа ўЁвм ҐҐ ўгвਠᥡп. —в®Ўл ЇаЁ«®¦ҐЁҐ
Ўл«® ¤Ґ¦л¬, Ґ®Ўе®¤Ё¬®, зв®Ўл ®® Ўл«® бЇ®б®Ў® а бЇ®§ ў вм
ЁбЄ«озЁвҐ«млҐ бЁвг жЁЁ Ё ॠЈЁа®ў вм Ёе.
‘«Ґ¤гойЁ¬ Ї®пвЁҐ¬ пў«пҐвбп § йЁйҐл© Ў«®Є Є®¤ . ќв® Ў«®Є,
Є®в®а®¬ ®ЇаҐ¤Ґ«Ґ ®вЄ«ЁЄ ЁбЄ«о票п. …б«Ё ў Ў«®ЄҐ ®вЄ«ЁЄ
ЁбЄ«о票Ґ Ґ ®ЇаҐ¤Ґ«Ґ, ЁбЄ«о票Ґ ў®§ЁЄ«®, в® ®® ЇҐаҐ¤ Ґвбп
®Ўа Ў®вЄг ў® ўҐиЁ© Ў«®Є Ё в.¤. …б«Ё Ё ў ®¤®¬ Ё§ Ў«®Є®ў
ЁбЄ«о票Ґ Ґ ®ЇаҐ¤Ґ«Ґ®, в® ®® ЇҐаҐ¤ Ґвбп ®Ўа Ў®вЄг б।Ґ,
ЇаЁ«®¦ҐЁҐ ў аЁ©® § ўҐаи Ґв ўлЇ®«ҐЁҐ.
‡ йЁйҐл© Ў«®Є Є®¤ ®ЇЁблў Ґвбп § १ҐаўЁа®ў л¬Ё б«®ў ¬Ё
try ... end. ‚гваЁ нв®Ј® Ў«®Є Ї®¬Ґй овбп ®ЇҐа в®ал, Є®в®але
¦Ґ« вҐ«м® ®Ўа Ў®в вм ЁбЄ«о票п, Ё б ¬Ё ®ЇҐа в®ал ®Ўа Ў®вЄЁ
ЁбЄ«о票©.
я15.1. ‡ йЁв аҐбгаб®ў
Џ®бЄ®«мЄг ЇаЁ ў®§Ўг¦¤ҐЁЁ ЁбЄ«о票п аги Ґвбп ҐбвҐб⢥л©
Ї®а冷Є б«Ґ¤®ў Ёп ®ЇҐа в®а®ў, в® ЁЎ®«ҐҐ вЁЇЁз®© бЁвг жЁҐ© ў
н⮬ б«гз Ґ пў«пҐвбп Ґ®бў®Ў®¦¤ҐЁҐ а ҐҐ § еў зҐле аҐбгаб®ў. Љ
в ЄЁ¬ аҐбгаб ¬ ў ЇҐаўго ®зҐаҐ¤м ®в®бпвбп д ©«л Ё Ї ¬пвм. „Ґ«мдЁ
ЇаҐ¤®бв ў«пҐв ў®§¬®¦®бвм ў®§ўа в а ҐҐ § еў зҐле аҐбгаб®ў ЇаЁ
ў®§Ўг¦¤ҐЁЁ ЁбЄ«озҐЁп ЎҐ§ ўлпбҐЁп ЇаЁзЁ б ¬®Ј® ЁбЄ«о票п.
„«п нв®Ј® ЁбЇ®«м§гҐвбп ЇҐаўл© ў аЁ в Ё§ ¤ўге ў аЁ в®ў
§ йЁйҐ®Ј® Ў«®Є . ‘вагЄвга Ў«®Є Є®¤ б § йЁйҐл¬ ®в
ЁбЄ«озҐЁп ўл¤Ґ«ҐЁҐ¬ аҐбгаб ЇаЁўҐ¤Ґ Ё¦Ґ:
‚뤥«ҐЁҐ аҐбгаб ; {1}
try
ЋЇҐа в®ал, ЁбЇ®«м§гойЁҐ аҐбгаб, Є®в®але ¬®¦Ґв
ў®§ЁЄгвм ЁбЄ«о票Ґ; {2}
finally
Ћбў®Ў®¦¤ҐЁҐ аҐбгаб ; {3}
end;
‡ йЁйҐл© Ў«®Є а Ў®в Ґв б«Ґ¤гойЁ¬ ®Ўа §®¬:
- Ґб«Ё ЁбЄ«озҐЁп Ґв, в® Ї®б«Ґ¤®ў ⥫м®бвм ўлЇ®«ҐЁп
®ЇҐа в®а®ў б«Ґ¤гой п - 1, 2, 3;
- Ґб«Ё гз бвЄҐ try ... finally ў®§ЁЄ Ґв ЁбЄ«о票Ґ, в®
гЇа ў«ҐЁҐ Ґ¬Ґ¤«Ґ® ЇҐаҐ¤ Ґвбп § finally, Ј¤Ґ ўлЇ®«пҐвбп
®ЇҐа в®а 3. ЋЇҐа в®ал § finally §лў овбп Є®¤®¬ ®зЁбвЄЁ.
ЏаЁўҐ¤Ґл© ў аЁ в § йЁйҐ®Ј® Ў«®Є try...finally...end
пў«пҐвбп ў ਠ⮬ Ё¬Ґ® § йЁвл ®в ЁбЄ«озЁвҐ«м®© бЁвг жЁЁ, Ґ
®Ўа Ў®вЄ®© ҐҐ. Љ®¤ ®зЁбвЄЁ Ґ Ё¬ҐҐв ¤ ¦Ґ Ёд®а¬ жЁЁ ® ⮬, Є ЄЁ¬
бЇ®б®Ў®¬ Їа®Ја ¬¬ Ї®¤®и« Є ҐЈ® ўлЇ®«ҐЁо - ҐбвҐб⢥л¬
Ї®ап¤Є®¬ Ё«Ё зҐаҐ§ ЁбЄ«о票Ґ.
„ л© ЇаЁ¬Ґа ¬®¦® ба ўЁвм б Ї®б«Ґ¤Ё¬ ЇаЁ¬Ґа®¬ Ё§ Ђ¤л,
аҐи ойЁ¬ вг ¦Ґ б ¬го § ¤ зг.
„«п ўлЇ®«ҐЁп Ё¬Ґ® ®Ўа Ў®вЄЁ ЁбЄ«озҐЁп Ґ®Ўе®¤Ё¬® § вм
ЇаЁзЁг ЁбЄ«о票п. ЃЁЎ«Ё®вҐЄ „Ґ«мдЁ б®¤Ґа¦Ёв Ў®«ми®© Ў®а
ЇаҐ¤®ЇаҐ¤Ґ«Ґле ЁбЄ«о票©, Єа вЄ п е а ЄвҐаЁбвЁЄ Є®в®але
ЇаҐ¤бв ў«Ґ Ё¦Ґ.
я15.2. ЏаҐ¤®ЇаҐ¤Ґ«ҐлҐ ЁбЄ«о票п
ЃЁЎ«Ё®вҐЄ „Ґ«мдЁ ®Ў« ¤ Ґв б।бвў ¬Ё ®Ўа Ў®вЄЁ б«Ґ¤гойЁе
ўЁ¤®ў ЁбЄ«озЁвҐ«мле бЁвг жЁ©:
- ЁбЄ«озҐЁп ўў®¤ -ўлў®¤ ;
- ЁбЄ«озҐЁп ¤Ё ¬ЁзҐбЄ®© Ї ¬пвЁ;
- ЁбЄ«о票п 楫®© ¬ ⥬ вЁЄЁ;
- ЁбЄ«озҐЁп ўҐйҐб⢥®© ¬ ⥬ вЁЄЁ;
- ЁбЄ«озҐЁп Ґб®ўЇ ¤ҐЁп вЁЇ®ў;
- ЁбЄ«озҐЁп ЇаҐ®Ўа §®ў Ёп;
- ЇЇ а влҐ ЁбЄ«о票п.
ђ бᬮваЁ¬ Єа вЄ® Є ¦¤л© Ё§ ўЁ¤®ў ЁбЄ«о票©. ‚ Ў®«миЁб⢥
б«гз Ґў Ё¬п ЁбЄ«озҐЁп Ї®пвл¬ ®Ўа §®¬ а §кпбпҐв ЇаЁзЁг
ЁбЄ«о票п.
€бЄ«о票Ґ ўў®¤ -ўлў®¤ - EInOutError.
€бЄ«о票Ґ ¤Ё ¬ЁзҐбЄ®© Ї ¬пвЁ - EOutOfMemory,
EInvalidPointer.
€бЄ«о票Ґ 楫®© ¬ ⥬ вЁЄЁ - EIntError, Ё¬ҐҐв б«Ґ¤ЁЄ®ў -
EDivByZero, ERangeError, EIntOverflow.
€бЄ«о票Ґ ўҐйҐб⢥®© ¬ ⥬ вЁЄЁ - EMathError, Ё¬ҐҐв
б«Ґ¤ЁЄ®ў - EInvalidOp, EZeroDivide, EOverflow, EUnderflow.
€бЄ«о票Ґ Ґб®ўЇ ¤ҐЁп вЁЇ®ў - EInvalidCast.
€бЄ«о票Ґ ЇаҐ®Ўа §®ў Ёп - EConvertError.
ЂЇЇ а влҐ ЁбЄ«о票п - EProcessorException, Ё¬ҐҐв
б«Ґ¤ЁЄ®ў - EGPFault, EStackFault, EPageFault, EInvalidOpCode,
EBreakPoint, ESingleStep.
Ћв¬ҐвЁ¬, зв® ўбҐ ЇаЁўҐ¤ҐлҐ ЁбЄ«о票п пў«повбп
б«Ґ¤ЁЄ ¬Ё ®ЎкҐЄв Exception.
я15.3. €бЄ«озҐЁп Є Є ®ЎкҐЄвл
“¦Ґ Ј®ў®аЁ«®бм ® ⮬, зв® ЇаЁ ў®§ЁЄ®ўҐЁЁ ЁбЄ«озЁвҐ«м®©
бЁвг жЁЁ б। „Ґ«мдЁ б®§¤ Ґв нЄ§Ґ¬Ї«па ®ЎкҐЄв -ЁбЄ«о票п. ‚бҐ
®ЎкҐЄвл-ЁбЄ«о票п пў«повбп б«Ґ¤ЁЄ ¬Ё Ў §®ў®Ј® Є« бб
Exception. ќв®в Ў §®ўл© Є« бб Ё¬ҐҐв б«Ґ¤го饥 ЇаЁ¬Ґа®Ґ ®ЇЁб ЁҐ:
Type
Exception = class(TObject)
property Message : string read GetMessage write SetMessage;
private
function GetMessage : string;
procedure SetMessage(const Value : string);
public
constructor Create(const Msg : string);
destructor Destroy; override;
End;
‘ў®©бвў® Message ЇаҐ¤бв ў«пҐв б®Ў®© б®®ЎйҐЁҐ, Є®в®а®Ґ
Ї®пў«пҐвбп ў бЇҐжЁ «м®¬ ¤Ё «®Ј®ў®¬ ®ЄҐ, Є®Ј¤ Ї®пў«пҐвбп
ЁбЄ«о票Ґ, Ґб«Ё ®вбгвбвўгҐв бЇҐжЁ «мл© ®Ўа Ў®взЁЄ ЁбЄ«о票п.
‚ᥠЇҐаҐзЁб«ҐлҐ ўЁ¤л ЁбЄ«о票© пў«повбп б«Ґ¤ЁЄ ¬Ё
Exception, в.Ґ. ®ЇЁблў овбп б«Ґ¤гойЁ¬ ®Ўа §®¬, ЇаЁ¬Ґа:
Type
EInOutError = class(Exception)
public
ErrorCode : Integer;
end;
Ј¤Ґ ErrorCode - Є®¤ ®иЁЎЄЁ, гЄ §лў ойЁ© вг Ё«Ё Ёго
Є®ЄаҐвго ЇаЁзЁг, ўл§ў ўиго ЁбЄ«о票Ґ.
‘®Ўб⢥®Ґ ЁбЄ«о票Ґ ⮦Ґ «гзиҐ ®ЇаҐ¤Ґ«Ёвм Є Є б«Ґ¤ЁЄ
Є« бб Exception:
Type
EMyException = class(Exception);
я_я11. ‘ ¬ п ®Ўй п е а ЄвҐаЁбвЁЄ ЁбЄ«о票©
€бЄ«озҐЁп ®вҐбҐл ¬Ё Є бЁеа®л¬ ¬Ґв®¤ ¬ § ¬Ґл
Є®вҐЄбв , в.Є. ҐЁ§ўҐб⥠¬®¬Ґв ў®§ЁЄ®ўҐЁп ЁбЄ«о票п.
ќв® бў®©бвў® бЎ«Ё¦ Ґв ЁбЄ«о票п б ЇаҐалў Ёп¬Ё.
ђ §«ЁзЁҐ б®бв®Ёв ў ⮬, зв® ЇаҐалў ЁҐ ўл§лў Ґвбп ўҐиҐ©
ЇаЁзЁ®© - нв® бЁЈ « ®в ўҐиҐ© б।л, ЁбЄ«о票Ґ - нв®
ўгваҐпп ЇаЁзЁ б¬Ґл Є®вҐЄбв , бўп§ п б 室®¬ ўлЇ®«ҐЁп
ЁбвагЄжЁ© Їа®Ја ¬¬л.
Џ®¤ ЁбЄ«о票Ґ¬ Ї®Ё¬ ов бЁЈ « ®Ў ®вЄ«®ҐЁЁ ў ўлЇ®«ҐЁЁ
ЁбвагЄжЁЁ. ЏаЁзЁ ¬Ё ЁбЄ«о票© ¬®Јгв Ўлвм б«Ґ¤гойЁҐ:
- ҐЇа ўЁ«млҐ ¤ лҐ ( ЇаЁ¬Ґа, ¤Ґ«ҐЁҐ ®«м);
- Ї®ЇлвЄ ўлЇ®«ҐЁп ЁбвагЄжЁЁ, Ґ ᮮ⢥вбвўго饩 га®ўо
§ йЁвл;
- ҐўлЇ®«пҐ¬ п ЁбвагЄжЁп ( ЇаЁ¬Ґа, ¤аҐб ўҐ Ї ¬пвЁ).
ЏаЁ Ї®пў«ҐЁЁ ЁбЄ«озҐЁп Їа®жҐбб®а ўл¤ Ґв бЁЈ « ЇаҐалў Ёп
б ®¬Ґа®¬, ᮮ⢥вбвўгойЁ¬ ®¬Ґаг ЇаЁзЁл ЁбЄ«о票п. ’.Ґ.
ЁбЄ«озҐЁп ®Ўа Ў влў овбп Є Є ЇаҐалў Ёп, Ё¬Ґ®, Ї® ®¬Ґаг
ЁбЄ«озҐЁп Їа®жҐбб®а ®Ўа й Ґвбп Є в Ў«ЁжҐ ЇаҐалў Ё© Ё зҐаҐ§ ҐҐ
室Ёв Їа®жҐ¤гаг - ®Ўа Ў®взЁЄ ЁбЄ«о票п. Ћв«ЁзЁҐ ЁбЄ«о票© ®в
ЇаҐалў Ё© б®бв®Ёв ў ⮬, зв® Ї®б«Ґ ўлЇ®«ҐЁп ®Ўа Ў®взЁЄ
ЁбЄ«о票п гЇа ў«ҐЁҐ, Є Є Їа ўЁ«®, Ґ ў®§ўа й Ґвбп ў в®зЄг
ў®§Ўг¦¤ҐЁп ЁбЄ«о票п.
ЊҐе Ё§¬ ЁбЄ«о票© Ёб室® бгйҐбвўгҐв га®ўҐ аеЁвҐЄвгал
Їа®жҐбб®а Ё ¤ «ҐҐ а §ўЁв ¤«п Їа®Ја ¬¬ле б। п§лЄ®ў ўлб®Є®Ј®
га®ўп. ђ бᬮваЁ¬ б з « ЁбЄ«озҐЁп Ё§Є®¬ га®ўҐ.
я_я12. €бЄ«озҐЁп Ё§Є®¬ га®ўҐ
€бЄ«озҐЁп Ё§Є®¬ га®ўҐ а бᬮваЁ¬ ЇаЁ¬ҐаҐ
аеЁвҐЄвгал 386 Їа®жҐбб®а . ЂаеЁвҐЄвга® бгйҐбвўгҐв ап¤ ®иЁЎ®зле
бЁвг жЁ©, ў Є®в®але Їа®жҐбб®а ў®§Ўг¦¤ Ґв ЇаҐалў Ёп,
ЁвҐаЇаҐвЁагҐ¬лҐ Є Є ЁбЄ«о票п. ЌЁ¦Ґ ЇаЁўҐ¤Ґ ЇҐаҐзҐм нвЁе
бЁвг жЁ©:
Ќ®¬Ґа ЁбЄ«озҐЁп ЏаЁзЁ
0 ЋиЁЎЄ ¤Ґ«ҐЁп
1 Џ®и Ј®ў®Ґ ЇаҐалў ЁҐ ЇаЁ ®в« ¤ЄҐ
2 ЌҐ¬ бЄЁа㥬®Ґ ЇаҐалў ЁҐ
3 Ћбв ®ў ЇаЁ ®в« ¤ЄҐ
4 ЏҐаҐЇ®«ҐЁҐ
5 ‚л室 § Ја Ёжл ¬ ббЁў
6 ЌҐ¤®ЇгбвЁ¬л© Є®¤ ®ЇҐа жЁЁ
7 ЋвбгвбвўЁҐ б®Їа®жҐбб®а
8 „ў®© п ®иЁЎЄ
9 ЏаҐўл襨Ґ ᥣ¬Ґв б®Їа®жҐбб®а®¬
10 ЌҐўҐал© бҐЈ¬Ґв б®бв®пЁп § ¤ зЁ
11 ‘ҐЈ¬Ґв ®вбгвбвўгҐв
12 ЋиЁЎЄ б⥪
13 ЋЎй п ®иЁЎЄ § йЁвл
14 ‘ва Ёз п ®иЁЎЄ
15 ђҐ§Ґаў
16 ЋиЁЎЄ б®Їа®жҐбб®а
ЋЇҐа жЁ® п б। ЎҐаҐв бҐЎп ®Ўа Ў®вЄг ЁбЄ«о票©. …б«Ё
нв® ®иЁЎЄ Їа®Ја ¬¬л, ЇаЁ¬Ґа, ¤Ґ«ҐЁҐ ®«м, в® Їа®Ја ¬¬
ў аЁ©® § ўҐаи Ґвбп. ‚ ҐЄ®в®але б«гз пе, Є®Ј¤ ў®§¬®¦®
ЁбЇа ў«ҐЁҐ ®иЁЎЄЁ, Ї®б«Ґ ҐҐ ЁбЇа ў«ҐЁп Їа®Ја ¬¬ Їа®¤®«¦ Ґв
ўлЇ®«пвмбп. ’ЁЇЁзл¬ ЇаЁ¬Ґа®¬ пў«пҐвбп ЁбЄ«о票Ґ 11 Ї®
®вбгвбвўЁо ᥣ¬Ґв . ‚ н⮬ б«гз Ґ ®вбгвбвўгойЁ© ᥣ¬Ґв ЁйҐвбп
¤ЁбЄҐ, § Јаг¦ Ґвбп ў Ї ¬пвм Ё Їа®Ја ¬¬ Їа®¤®«¦ Ґв а Ў®вг.
‚ б«гз Ґ ў®§ЁЄ®ўҐЁп ®иЁЎЄЁ, Ґ ЇаҐ¤гᬮв८©
ЁбЄ«о票ﬨ 0 - 12 Ё 14 - 16, ў®§ЁЄ Ґв ЁбЄ«о票Ґ 13 - ®Ўй п
®иЁЎЄ § йЁвл. ќв® ЇҐз «м® Ё§ўҐбв п General protection fault,
з бв® ў®§ЁЄ ой п ў Їа®Ја ¬¬ е Ї®¤ Windows. ‚ҐиЁҐ ЇаЁзЁл нв®©
®иЁЎЄЁ ¬®Јгв Ўлвм б ¬л¬Ё а §®®Ўа §л¬Ё. ЌЁ¦Ґ ЇаЁўҐ¤Ґ ЇҐаҐзҐм
вЁЇЁзле ЇаЁзЁ ў®§ЁЄ®ўҐЁп нв®Ј® ЁбЄ«о票п:
1) ЇҐаҐ¤ з гЇа ў«ҐЁп ҐЁбЇ®«пҐ¬®¬г ᥣ¬Ґвг;
2) § Јаг§Є ॣЁбва SS ᥫҐЄв®а®¬ ЁбЇ®«пҐ¬®Ј® ᥣ¬Ґв Ё«Ё
ᥣ¬Ґв ЎҐ§ а §аҐиҐЁп § ЇЁбЁ:
3) § Јаг§Є SS, DS, ES, FS, GS ᥫҐЄв®а®¬ бЁб⥬®Ј®
ᥣ¬Ґв ;
4) § Јаг§Є DS, ES, FS, GS ᥫҐЄв®а®¬ ЁбЇ®«пҐ¬®Ј® ᥣ¬Ґв ,
Є®в®ал© Ґ пў«пҐвбп зЁв Ґ¬л¬;
5) ЇҐаҐ¤ з гЇа ў«ҐЁп б аг襨Ґ¬ Їа ўЁ« ЇаЁўЁ«ҐЈЁ©;
6) § Јаг§Є CS, SS, DS, ES, FS, GS ᥫҐЄв®а®¬, гЄ §лў ойЁ¬
«®Є «мго в Ў«Ёжг ¤ҐбЄаЁЇв®а®ў, Є®Ј¤ нв в Ў«Ёж Ґ
®ЇаҐ¤Ґ«Ґ ;
7) § Јаг§Є SS г«Ґўл¬ ᥫҐЄв®а®¬;
8) ЇаҐўл襨Ґ ЇаҐ¤Ґ« ᥣ¬Ґв ;
9) ЇаҐўл襨Ґ ЇаҐ¤Ґ« в Ў«Ёжл;
10) Ї®ЇлвЄ § ЇЁбЁ ў ᥣ¬Ґв, а §аҐиҐл© в®«мЄ® ¤«п з⥨п;
11) Ї®ЇлвЄ звҐЁп ЎҐ§ а §аҐиҐЁп Ё§ ЁбЇ®«пҐ¬®Ј® ᥣ¬Ґв ;
12) Ї®ЇлвЄ ¤®бвгЇ Є Ї ¬пвЁ, Є®Ј¤ ЁбЇ®«м§гҐ¬л© ᥣ¬Ґвл©
ॣЁбва ᮤҐа¦Ёв г«м-ᥫҐЄв®а;
13) Ї®ЇлвЄ гбв ®ўЁвм бва Ёзл© ¬Ґе Ё§¬ ў ॠ«м®¬ ०Ё¬Ґ;
14) ҐЇа ўЁ«м п ®Ўа Ў®вЄ ЇаҐалў Ёп ў ०Ё¬Ґ V86;
15) ЇаҐўл襨Ґ ¬ ЄбЁ¬ «м®© ¤«Ёл Є®¬ ¤л.
Џ®б«Ґ в ЄЁе ®иЁЎ®Є Їа®Ја ¬¬ ў аЁ©® § ўҐаи Ґв бў®о а Ў®вг.
€®Ј¤ , ®б®ЎҐ® ў ЁвҐа ЄвЁўле Їа®Ја ¬¬ е, Ґбвм
ў®§¬®¦®бвм ЁбЇа ўЁвм ®иЁЎЄг Ё ўҐагвмбп Є Ї®ўв®аҐЁо ¤Ґ©бвўЁп,
ЇаЁ¬Ґа, ЇаЁ ¤Ґ«ҐЁЁ ®«м ¬®¦Ґв Ўлвм Ґбвм ў®§¬®¦®бвм
Ё§¬ҐЁвм ¤Ґ«ЁвҐ«м. ‚ н⮬ б«гз Ґ ҐжҐ«Ґб®®Ўа §® ў аЁ©®
§ ўҐаи вм а Ў®вг Їа®Ја ¬¬л. Ќ «ЁзЁҐ Ї®¤®Ўле бЁвг жЁ© пў«пҐвбп
ЇҐаў®© ЇаЁзЁ®© Ї®пў«ҐЁп Їа®Ја ¬¬ле б।бвў ®Ўа Ў®вЄЁ
ЁбЄ«о票©.
‚в®а®© ЇаЁзЁ®© Ї®пў«ҐЁп Їа®Ја ¬¬ле б।бвў ®Ўа Ў®вЄЁ
ЁбЄ«о票© пў«пҐвбп бв६«ҐЁҐ Ї®ўлбЁвм Ј«п¤®бвм Їа®Ја ¬¬л,
в.Ґ. ЁбЄ«о票п а бб¬ ваЁў овбп Є Є ®¤® Ё§ б।бвў
бвагЄвгаЁ§ жЁЁ Їа®Ја ¬¬®Ј® ®ЎҐбЇҐзҐЁп.
ЌЁ¦Ґ а бᬮваЁ¬ Їа®Ја ¬¬лҐ б।бвў ®Ўа Ў®вЄЁ
ЁбЄ«озЁвҐ«мле бЁвг жЁ©.
я_я13. €бЄ«озҐЁп ў Їа®Ја ¬¬ле б। е
‚ ¦® ®в¬ҐвЁвм, зв® аҐзм ¤ «ҐҐ Ї®©¤Ґв в®«мЄ® ® вҐе
ЁбЄ«озЁвҐ«мле бЁвг жЁпе, Є®в®алҐ Їа®Ја ¬¬Ёбв § Ґв, Є Є
ЁбЇа ўЁвм. …б«Ё Їа®Ја ¬¬Ёбв Ґ § Ґв, Є Є ЁбЇа ўЁвм
ЁбЄ«озЁвҐ«мго бЁвг жЁо (нв® Є Є Їа ўЁ«®, ®в®бЁвбп Є ЁбЄ«о票п¬
вЁЇ GPF Ё Є® ўбҐ¬ ЁбЄ«озҐЁп¬ Ё§Є®Ј® га®ўп, Єа®¬Ґ ¤Ґ«ҐЁп
®«м), в® ®Ўа Ў®вЄг нв®Ј® ЁбЄ«озҐЁп Ґ®Ўе®¤Ё¬® ®бв ўЁвм бЁб⥬Ґ.
Ља®¬Ґ в®Ј®, аҐзм §¤Ґбм Ї®©¤Ґв ® ®ў®© (®в®бЁвҐ«м®)
Є®жҐЇжЁЁ ®Ўа Ў®вЄЁ зЁбв® Їа®Ја ¬¬ле ®иЁЎ®Є - ®Ўа Ў®вЄҐ
га®ўҐ ЁбЄ«о票©, Є®Ј¤ ® «ЁзЁЁ ®иЁЎЄЁ Їа®Ја ¬¬ бЁЈ «Ё§ЁагҐв
ЁбЄ«озЁвҐ«м®© бЁвг жЁҐ©, зв® Ї®ўли Ґв Ј«п¤®бвм Ё
бвагЄвгаЁа®ў ®бвм Їа®Ја ¬¬л.
„«п в®Ј® зв®Ўл Їа®Ја ¬¬ ¬®Ј« ᮧ¤ ў вм ЁбЄ«озЁвҐ«млҐ
бЁвг жЁЁ Ё 㬥вм Ёе ®Ўа Ў влў вм бЁб⥬ Їа®Ја ¬¬Ёа®ў Ёп ¤®«¦
®Ў« ¤ вм бЇҐжЁ «мл¬Ё б।бвў ¬Ё, ® Є®в®але аҐзм Ї®©¤Ґв Ё¦Ґ.
’ ЄЁ¬Ё б।бвў ¬Ё ®Ў« ¤ ов п§лЄЁ Ђ¤ , Њ®¤г« -2, ‘Ё++ Ё ⥯Ґам
®Ў« ¤ Ґв ®ў п ўҐабЁп Џ бЄ «п - „Ґ«мдЁ.
„ ¤Ё¬ ®Ўйго е а ЄвҐаЁбвЁЄг ЁбЄ«о票© б в®зЄЁ §аҐЁп п§лЄ
ўлб®Є®Ј® га®ўп.
ЏаЁ ў®§ЁЄ®ўҐЁЁ ЁбЄ«озҐЁп ®а¬ «м®Ґ ўлЇ®«ҐЁҐ Їа®Ја ¬¬л
ЇаҐЄа й Ґвбп Ё ЁЁжЁЁагҐвбп а Ў®в ®Ўа Ў®взЁЄ ЁбЄ«о票п. Џ®б«Ґ
§ ўҐаиҐЁп ®Ўа Ў®вЄЁ ЁбЄ«озҐЁп ўлЇ®«ҐЁҐ Їа®Ја ¬¬л Ґ
ў®§®Ў®ў«пҐвбп ў в®зЄҐ ў®§ЁЄ®ўҐЁп ЁбЄ«о票п. Џа®жҐбб
гбв ®ў«ҐЁп бўп§Ё ¬Ґ¦¤г Є®ЄаҐв®© ®иЁЎ®з®© бЁвг жЁҐ© Ё
ᮮ⢥вбвўгойЁ¬ ®Ўа Ў®взЁЄ®¬ §лў Ґвбп ў®§Ўг¦¤ҐЁҐ¬ ЁбЄ«о票п.
ЏаЁ ў®§Ўг¦¤ҐЁЁ ®ЇҐа в®ал, ®ЇЁб лҐ ў ®Ўа Ў®взЁЄҐ, ўлЇ®«повбп.
‘ ¬ ®Ўа Ў®взЁЄ ЁбЄ«о票© Ї®¬Ґй Ґвбп ў Є®жҐ Ў«®Є Їа®Ја ¬¬л.
…б«Ё ў ¤ ®¬ Ў«®ЄҐ Ґ ®ЇЁб ®Ўа Ў®взЁЄ ЁбЄ«озЁвҐ«м®© бЁвг жЁЁ,
в® ®Ўа Ў®вЄ ЁбЄ«озҐЁп ЇҐаҐ¤ Ґвбп ў Ў«®Є, ўҐиЁ© Ї® ®в®иҐЁо Є
⮬㠡«®Єг, ў Є®в®а®¬ ў®§Ўг¦¤Ґ® ЁбЄ«о票Ґ, Ё в.¤. ’ Є п
ЇҐаҐ¤ з ЁбЄ«озҐЁп §лў Ґвбп а бЇа®бва ҐЁҐ¬ ЁбЄ«о票п. …б«Ё
Ё ў б ¬®¬ ўҐиҐ¬ Ў«®ЄҐ Їа®Ја ¬¬л ®вбгвбвўгҐв ®Ўа Ў®взЁЄ, в®
®Ўа Ў®вЄ ЁбЄ«озҐЁп ЇҐаҐ¤ Ґвбп б।Ґ Ё ўлЇ®«ҐЁҐ Їа®Ја ¬¬л ў
н⮬ б«гз Ґ ў аЁ©® § ўҐаи Ґвбп.
’а ¤ЁжЁ®® ¤«п Їа®ўҐаЄЁ «ЁзЁп ®иЁЎ®з®© бЁвг жЁЁ
ЁбЇ®«м§говбп пўлҐ Їа®ўҐаЄЁ, Є®в®алҐ § Ја®¬®¦¤ ов Їа®Ја ¬¬г.
ЏаЁўҐ¤Ґ¬ ЇаЁ¬Ґа а Ў®вл б д ©«®¬ ў Џ бЄ «Ґ. Џ®б«Ґ¤®ў ⥫м®бвм
а Ў®вл б д ©«®¬ ўлЈ«п¤Ёв б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure FileWork;
Begin
ЋвЄалвм д ©«;
Џа®зЁв вм ¤ лҐ Ё§ д ©« ;
‡ ЇЁб вм ¤ лҐ ў д ©«;
‡ Єалвм д ©«;
End {FileWork};
Ќ Є ¦¤®¬ и ЈҐ ¬®¦Ґв ў®§ЁЄгвм ®иЁЎЄ ўў®¤ -ўлў®¤ ,
ЇаЁў®¤пй п Є ў аЁ©®¬г § ўҐаиҐЁо Їа®Ја ¬¬л. Ќ ЇаЁ¬Ґа, д ©«
®вбгвбвўгҐв Ё«Ё зЁв Ґ¬ ¤ лҐ § Є®ж®¬ д ©« .
—в®Ўл Їа®Ја ¬¬ Ґ § ўҐаи « бм ў аЁ©®, ¤® ®вЄ«озЁвм
Їа®ўҐаЄг Їа ўЁ«м®бвЁ ўлЇ®«ҐЁп ®ЇҐа жЁ© ўў®¤ -ўлў®¤ б।®©
Џ бЄ «п (Є«оз Є®¬ЇЁ«пв®а {$I-}) Ё Ї®б«Ґ Є ¦¤®© ®ЇҐа жЁЁ
Їа®ўҐапвм § 票Ґ ЇҐаҐ¬Ґ®© IOResult. ’® Ґбвм ®д®а¬«пвм
Їа®Ја ¬¬г б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure FileWork;
Begin
ЋвЄалвм д ©«;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
Џа®зЁв вм ¤ лҐ Ё§ д ©« ;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
‡ ЇЁб вм ¤ лҐ ў д ©«;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
‡ Єалвм д ©«;
If IOResult <> 0 Then Begin
Writeln('Error!');
Exit;
End {If};
End {FileWork};
Џ®б«Ґ Є ¦¤®© ®ЇҐа жЁЁ ўў®¤ -ўлў®¤ Ґ®Ўе®¤Ё¬® ¤Ґ« вм пўлҐ
Їа®ўҐаЄЁ. …б«Ё в ЄЁе ®ЇҐа жЁ© ¬®Ј®, в® Ја®¬®§¤Є®бвм Їа®Ја ¬¬л
бв ®ўЁвбп ®зҐўЁ¤®© Ё Ј«п¤®бвм १Є® бЁ¦Ґ .
ЋЎа Ў®взЁЄ ЁбЄ«о票© Ї®§ў®«пҐв ®в¤Ґ«Ёвм ®ЇҐа в®ал а Ў®вл б
д ©«®¬ ®в ®ЇҐа в®а®ў Їа®ўҐаЄЁ ®иЁЎ®з®© бЁвг жЁЁ Ё бЄ®¬Ї®®ў вм
Їа®ўҐаЄЁ ў ®в¤Ґ«м®© з бвЁ Їа®Ја ¬¬л, Ґ ЇҐаҐ¬Ґ¦ п Ёе б
®ЇҐа в®а ¬Ё, ў Є®в®але ¬®Јгв ў®§ЁЄ вм ®иЁЎЄЁ. ‚ ®ЎйҐ¬ ўЁ¤Ґ нв®
Ўг¤Ґв ўлЈ«п¤Ґвм ¤«п 襣® ЇаЁ¬Ґа б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure FileWork;
Begin
ЋвЄалвм д ©«;
Џа®зЁв вм ¤ лҐ Ё§ д ©« ;
‡ ЇЁб вм ¤ лҐ ў д ©«;
‡ Єалвм д ©«;
Exception :
ЋЇҐа в®ал ®Ўа Ў®вЄЁ ЁбЄ«о票п, ЇаЁ¬Ґа,
б®®ЎйҐЁҐ Ї®«м§®ў вҐ«о ®Ў ®иЁЎЄҐ;
End {FileWork};
‚ЇҐаўлҐ Ї®¤®Ўл© бЇ®б®Ў ®Ўа Ў®вЄЁ ®иЁЎ®зле бЁвг жЁ© Ўл«
ЇаҐ¤«®¦Ґ ў п§лЄҐ ўлб®Є®Ј® га®ўп Ђ¤ Ё ¤ «ҐҐ Ўл« а бЇа®бва Ґ
Ў®«ҐҐ иЁа®Є® ЁбЇ®«м§гҐ¬лҐ п§лЄЁ. „«п Ё««обва жЁЁ ®Ўй®бвЁ
вҐе®«®ЈЁЁ ®Ўа Ў®вЄЁ ЁбЄ«о票© ў а §«Ёзле п§лЄ е ўлб®Є®Ј®
га®ўп б з « Єа вЄ® ®ЇЁиҐ¬ ®Ўа Ў®вЄг ЁбЄ«о票© ў Ђ¤Ґ, § ⥬
Ў®«ҐҐ Ї®¤а®Ў® а бᬮваЁ¬ ЇаЁжЁЇл ॠ«Ё§ жЁЁ ®Ўа Ў®вЄЁ
ЁбЄ«о票© ў „Ґ«мдЁ.
я_я14. ЋЎа Ў®вЄ ЁбЄ«о票© ў Ђ¤Ґ
ђ Ў®в б ЁбЄ«о票ﬨ ўЄ«оз Ґв ў ᥡп ап¤ нв Ї®ў.
1) ЋЇЁб ЁҐ ЁбЄ«о票п:
€¬п_ЁбЄ«о票п : exception;
Ќ ЇаЁ¬Ґа: My_error : exception;
‘гйҐбвўгҐв Ў®а ЇаҐ¤®ЇаҐ¤Ґ«Ґле ЁбЄ«о票©, ЁбЇ®«м§®ў ЁҐ
Є®в®але Ґ вॡгҐв ЇаҐ¤ў аЁвҐ«м®Ј® ®ЇЁб Ёп:
CONSTRAINT_ERROR ЋиЁЎЄ ўл室 § Ја Ёжл ¬ ббЁў Ё«Ё ббл«Є
Ґ®ЇаҐ¤Ґ«Ґл© гЄ § ⥫м
NUMERIC_ERROR ЂаЁд¬ҐвЁзҐбЄ п ®иЁЎЄ
PROGRAM_ERROR ЌҐ®Ўа Ў влў Ґ¬ п ®иЁЎЄ
STORAGE_ERROR ЋиЁЎЄ Ї ¬пвЁ
TASKING_ERROR ЋиЁЎЄ ў§ Ё¬®¤Ґ©бвўЁп § ¤ з
2) ‚®§Ўг¦¤ҐЁҐ ЁбЄ«о票п
‚®§Ўг¦¤ҐЁҐ ЁбЄ«озҐЁп Їа®Ё§ў®¤Ёвбп б Ї®¬®ймо ®ЇҐа в®а
raise:
raise €¬п_ЁбЄ«о票п;
Ќ ЇаЁ¬Ґа,
if ЋиЁЎЄ then
raise My_error;
end if;
3) ЋЇЁб ЁҐ ®Ўа Ў®взЁЄ ЁбЄ«о票п
ЋЎа Ў®взЁЄ ЁбЄ«озҐЁп Ї®¬Ґй Ґвбп ў Є®жҐ Ї®¤Їа®Ја ¬¬л ўб«Ґ¤
§ Є«озҐўл¬ б«®ў®¬ exception. ЋЎа Ў®взЁЄ ЁбЄ«озҐЁп Ё¬ҐҐв
б«Ґ¤гойго д®а¬г:
when €¬п_ЁбЄ«о票п => Џ®б«Ґ¤®ў ⥫м®бвм ®ЇҐа в®а®ў;
Ќ ЇаЁ¬Ґа,
when My_error => ‚лў®¤ нЄа б®®ЎйҐЁп ®Ў ®иЁЎЄҐ;
‚¬Ґбв® Ё¬ҐЁ ЁбЄ«озҐЁп Ї®б«Ґ б«®ў when ¬®¦Ґв Ї®пўЁвмбп
Є«о祢®Ґ б«®ў® others, Є®в®а®Ґ § ¤ Ґв ўбҐ ®бв «млҐ ЁбЄ«о票п,
Ґ ®Ўа Ў®в лҐ а ҐҐ. Ќ ЇаЁ¬Ґа, б®ў®ЄгЇ®бвм ®Ўа Ў®взЁЄ®ў
ЁбЄ«о票© ¬®¦Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:
Procedure Example;
Begin
Џ®б«Ґ¤®ў ⥫м®бвм ®ЇҐа в®а®ў, ¬®ЈгйЁе ў®§Ўг¤Ёвм
ЁбЄ«о票Ґ;
exception
when My_error => ‚лў®¤ нЄа б®®ЎйҐЁп ®Ў ®иЁЎЄҐ
My_error;
ЋЎа Ў®вЄ ®иЁЎЄЁ My_error;
when others => ‚лў®¤ нЄа б®®ЎйҐЁп ®
ҐЁ§ўҐбв®© ®иЁЎЄҐ;
raise;
End Example;
ЏаЁ Їа ўЁ«м®¬ ўлЇ®«ҐЁЁ Їа®Ја ¬¬л ®ЇҐа в®ал, б«Ґ¤гойЁҐ §
б«®ў®¬ exception, Ґ ўлЇ®«повбп. ЏаЁ ў®§Ўг¦¤ҐЁЁ ЁбЄ«о票п
Є ЄЁ¬-«ЁЎ® ®ЇҐа в®а®¬, Ґ ўлЇ®«повбп ®ЇҐа в®ал, б«Ґ¤гойЁҐ ¤®
б«®ў exception, ў¬Ґбв® Ёе зЁ Ґвбп ўлЇ®«ҐЁҐ ®ЇҐа в®а®ў
®Ўа Ў®взЁЄ . …б«Ё ®Ўа Ў®взЁЄ ®вбгвбвўгҐв, в® ЁбЄ«о票Ґ
ў®§Ўг¦¤ Ґвбп ў ®еў влў о饬 Ў«®ЄҐ. …б«Ё Ё§ўҐбв®, Є Є ®Ўа Ў®в вм
ЁбЄ«озЁвҐ«мго бЁвг жЁо, в® ® ®Ўа Ў влў Ґвбп. …б«Ё Ґ Ё§ўҐбв®,
Є Є нв® Ё¬ҐҐв ¬Ґбв® ў б«гз Ґ ЇҐаҐе®¤ Є ®ЇҐа в®аг "when others",
в® ўлў®¤Ёвбп б®®ЎйҐЁҐ ®Ў ®иЁЎЄҐ Ё Їа®Ё§ў®¤Ёвбп Ї®ўв®а®Ґ
ў®§Ўг¦¤ҐЁҐ ЁбЄ«озҐЁп ¤«п ЇҐаҐ¤ зЁ ®Ўа Ў®вЄЁ ў® ўҐиЁ© Ў«®Є.
‚ § Є«о票Ё ЇаЁўҐ¤Ґ¬ ЇаЁ¬Ґа § йЁвл ®в ЁбЄ«озЁвҐ«м®©
бЁвг жЁЁ ЇаЁ а Ў®вҐ б д ©«®¬. Ќ ЇаЁ¬Ґа, ¬л ®вЄал«Ё д ©« Ё
Їа®Ё§ў®¤Ё¬ б Ё¬ ®ЇҐа жЁЁ ўў®¤ -ўлў®¤ , § ⥬ § Єалў Ґ¬ ҐЈ®.
…б«Ё ў® ўаҐ¬п ўлЇ®«ҐЁп ®ЇҐа жЁ© ўў®¤ -ўлў®¤ ў®§Ўг¦¤ Ґвбп
ЁбЄ«о票Ґ, в® Ї®бЄ®«мЄг ҐбвҐб⢥ п Ї®б«Ґ¤®ў ⥫м®бвм ¤Ґ©бвўЁ©
ЇаҐЄа й Ґвбп, д ©« ¬®¦Ґв ®бв вмбп Ґ§ Єалвл¬ Ё Є ЄЁҐ-в® ¤ лҐ
¬®Јгв ®Є § вмбп Ї®вҐапл¬Ё. Ђ «®ЈЁз п бЁвг жЁп ¬®¦Ґв Ё¬Ґвм
¬Ґбв® б ¤Ё ¬ЁзҐбЄ®© Ї ¬пвмо - Ї ¬пвм ўл¤Ґ«пҐвбп, § ⥬
Їа®Ёб室Ёв ЁбЄ«о票Ґ Ё Ї ¬пвм ®Є §лў Ґвбп Ґў®§ўа 饮©
бЁб⥬Ґ, в.Є. агиҐ ҐбвҐбвўҐл© Ї®а冷Є б«Ґ¤®ў Ёп ®ЇҐа в®а®ў
Їа®Ја ¬¬л.
‘«Ґ¤гойЁ© ЇаЁ¬Ґа Ї®Є §лў Ґв ў аЁ в § йЁвл ®в Ї®¤®Ў®©
бЁвг жЁЁ б Ї®¬®ймо ®Ўа Ў®взЁЄ ЁбЄ«о票©.
Procedure File_Work;
Begin
ЋвЄалвЁҐ д ©« ; -- 1
Begin
ђ Ў®в б д ©«®¬; -- 2
exception
when others =>
‡ ЄалвЁҐ д ©« ; -- 4
raise;
end;
‡ ЄалвЁҐ д ©« ; -- 3
End File_Work;
…б«Ё ЁбЄ«о票Ґ Ґ ў®§Ўг¦¤ Ґвбп ў Їа®жҐ¤гаҐ, в® Ї®а冷Є
б«Ґ¤®ў Ёп ®ЇҐа в®а®ў б«Ґ¤гойЁ©: 1, 2, 3. …б«Ё ў®§Ўг¦¤ Ґвбп
ЁбЄ«о票Ґ б।Ё ®ЇҐа в®а®ў 2, в® ®ЇҐа в®а®¬ 4 § Єалў Ґвбп д ©« Ё
Їа®Ёб室Ёв Ї®ўв®а®Ґ ў®§Ўг¦¤ҐЁҐ ЁбЄ«озҐЁп ¤«п ЇҐаҐ¤ зЁ ҐЈ®
®Ўа Ў®вЄг ў® ўҐиЁҐ Ў«®ЄЁ. ’ ЄЁ¬ ®Ўа §®¬ д ©« Ўг¤Ґв § Єалў вмбп
Є Є ЇаЁ ®вбгвбвўЁҐ ЁбЄ«о票©, в Є Ё ЇаЁ Ёе «ЁзЁЁ.
Љ Є ¬л ᥩз б гўЁ¤Ё¬, ⥠¦Ґ б ¬лҐ Є®жҐЇжЁЁ ЁбЄ«о票©
§ «®¦Ґл Ё ў б ¬®¬ ЇҐаҐ¤®ў®¬ ᥣ®¤пиЁ© ¤Ґм Їа®Ја ¬¬®¬
б।б⢥ „Ґ«мдЁ.
я_я15. ЋЎа Ў®вЄ ЁбЄ«о票© ў „Ґ«мдЁ
„Ґ«мдЁ ў бв®п饥 ўаҐ¬п пў«пҐвбп б ¬®© ЇҐабЇҐЄвЁў®© б।®©
Їа®Ја ¬¬Ёа®ў Ёп, Ї®н⮬г а бᬮваЁ¬ ®Ўа Ў®вЄг ЁбЄ«о票© ў
„Ґ«мдЁ Ў®«ҐҐ Ї®¤а®Ў®.
€бЄ«о票Ґ ў „Ґ«мдЁ ®бЁв ¤ў®пЄЁ© е а ЄвҐа. ‘ ®¤®© бв®а®л
- нв® ва ¤ЁжЁ®®Ґ Ї®пвЁҐ - бЁЈ « ®Ў ®иЁЎ®з®¬ ®вЄ«®ҐЁЁ ў
ўлЇ®«ҐЁЁ ®ЇҐа в®а®ў, б ¤агЈ®© бв®а®л - нв® ®ЎкҐЄв,
ᮤҐа¦ йЁ© Ёд®а¬ жЁо ® е а ЄвҐаҐ Ё ¬Ґб⥠®иЁЎЄЁ. ’® Ґбвм §¤Ґбм
Ї®пвЁҐ ЁбЄ«озҐЁп Є« ¤лў Ґвбп ®ЎкҐЄв®-®аЁҐвЁа®ў п
Є®жҐЇжЁп. ЏаЁ ў®§ЁЄ®ўҐЁЁ ЁбЄ«о票п ᮧ¤ Ґвбп нЄ§Ґ¬Ї«па
®ЎкҐЄв -ЁбЄ«о票п б Ї®¬®ймо ¬Ґв®¤ -Є®бвагЄв®а , Ї®б«Ґ
®Ўа Ў®вЄЁ нЄ§Ґ¬Ї«па ®ЎкҐЄв -ЁбЄ«о票п а §аги Ґвбп
¬Ґв®¤®¬-¤ҐбвагЄв®а®¬. ЏаЁзҐ¬ а §аг襨Ґ ўбҐЈ¤ Їа®Ё§ў®¤Ёвбп
ўв®¬ вЁзҐбЄЁ б ¬®© б।®©.
Ќ б ¬®¬ ўҐа奬 га®ўҐ ўў®¤Ёвбп Ї®пвЁҐ ¤Ґ¦®Ј®
ЇаЁ«®¦ҐЁп. Ќ ¤Ґ¦®Ґ ЇаЁ«®¦ҐЁҐ Ґ ўл«Ґв Ґв ў б।㠯ਠЄ ¦¤®©
®иЁЎЄҐ, Їлв Ґвбп ЁбЇа ўЁвм ҐҐ ўгвਠᥡп. —в®Ўл ЇаЁ«®¦ҐЁҐ
Ўл«® ¤Ґ¦л¬, Ґ®Ўе®¤Ё¬®, зв®Ўл ®® Ўл«® бЇ®б®Ў® а бЇ®§ ў вм
ЁбЄ«озЁвҐ«млҐ бЁвг жЁЁ Ё ॠЈЁа®ў вм Ёе.
‘«Ґ¤гойЁ¬ Ї®пвЁҐ¬ пў«пҐвбп § йЁйҐл© Ў«®Є Є®¤ . ќв® Ў«®Є,
Є®в®а®¬ ®ЇаҐ¤Ґ«Ґ ®вЄ«ЁЄ ЁбЄ«о票п. …б«Ё ў Ў«®ЄҐ ®вЄ«ЁЄ
ЁбЄ«о票Ґ Ґ ®ЇаҐ¤Ґ«Ґ, ЁбЄ«о票Ґ ў®§ЁЄ«®, в® ®® ЇҐаҐ¤ Ґвбп
®Ўа Ў®вЄг ў® ўҐиЁ© Ў«®Є Ё в.¤. …б«Ё Ё ў ®¤®¬ Ё§ Ў«®Є®ў
ЁбЄ«о票Ґ Ґ ®ЇаҐ¤Ґ«Ґ®, в® ®® ЇҐаҐ¤ Ґвбп ®Ўа Ў®вЄг б।Ґ,
ЇаЁ«®¦ҐЁҐ ў аЁ©® § ўҐаи Ґв ўлЇ®«ҐЁҐ.
‡ йЁйҐл© Ў«®Є Є®¤ ®ЇЁблў Ґвбп § १ҐаўЁа®ў л¬Ё б«®ў ¬Ё
try ... end. ‚гваЁ нв®Ј® Ў«®Є Ї®¬Ґй овбп ®ЇҐа в®ал, Є®в®але
¦Ґ« вҐ«м® ®Ўа Ў®в вм ЁбЄ«о票п, Ё б ¬Ё ®ЇҐа в®ал ®Ўа Ў®вЄЁ
ЁбЄ«о票©.
я15.1. ‡ йЁв аҐбгаб®ў
Џ®бЄ®«мЄг ЇаЁ ў®§Ўг¦¤ҐЁЁ ЁбЄ«о票п аги Ґвбп ҐбвҐб⢥л©
Ї®а冷Є б«Ґ¤®ў Ёп ®ЇҐа в®а®ў, в® ЁЎ®«ҐҐ вЁЇЁз®© бЁвг жЁҐ© ў
н⮬ б«гз Ґ пў«пҐвбп Ґ®бў®Ў®¦¤ҐЁҐ а ҐҐ § еў зҐле аҐбгаб®ў. Љ
в ЄЁ¬ аҐбгаб ¬ ў ЇҐаўго ®зҐаҐ¤м ®в®бпвбп д ©«л Ё Ї ¬пвм. „Ґ«мдЁ
ЇаҐ¤®бв ў«пҐв ў®§¬®¦®бвм ў®§ўа в а ҐҐ § еў зҐле аҐбгаб®ў ЇаЁ
ў®§Ўг¦¤ҐЁЁ ЁбЄ«озҐЁп ЎҐ§ ўлпбҐЁп ЇаЁзЁ б ¬®Ј® ЁбЄ«о票п.
„«п нв®Ј® ЁбЇ®«м§гҐвбп ЇҐаўл© ў аЁ в Ё§ ¤ўге ў аЁ в®ў
§ йЁйҐ®Ј® Ў«®Є . ‘вагЄвга Ў«®Є Є®¤ б § йЁйҐл¬ ®в
ЁбЄ«озҐЁп ўл¤Ґ«ҐЁҐ¬ аҐбгаб ЇаЁўҐ¤Ґ Ё¦Ґ:
‚뤥«ҐЁҐ аҐбгаб ; {1}
try
ЋЇҐа в®ал, ЁбЇ®«м§гойЁҐ аҐбгаб, Є®в®але ¬®¦Ґв
ў®§ЁЄгвм ЁбЄ«о票Ґ; {2}
finally
Ћбў®Ў®¦¤ҐЁҐ аҐбгаб ; {3}
end;
‡ йЁйҐл© Ў«®Є а Ў®в Ґв б«Ґ¤гойЁ¬ ®Ўа §®¬:
- Ґб«Ё ЁбЄ«озҐЁп Ґв, в® Ї®б«Ґ¤®ў ⥫м®бвм ўлЇ®«ҐЁп
®ЇҐа в®а®ў б«Ґ¤гой п - 1, 2, 3;
- Ґб«Ё гз бвЄҐ try ... finally ў®§ЁЄ Ґв ЁбЄ«о票Ґ, в®
гЇа ў«ҐЁҐ Ґ¬Ґ¤«Ґ® ЇҐаҐ¤ Ґвбп § finally, Ј¤Ґ ўлЇ®«пҐвбп
®ЇҐа в®а 3. ЋЇҐа в®ал § finally §лў овбп Є®¤®¬ ®зЁбвЄЁ.
ЏаЁўҐ¤Ґл© ў аЁ в § йЁйҐ®Ј® Ў«®Є try...finally...end
пў«пҐвбп ў ਠ⮬ Ё¬Ґ® § йЁвл ®в ЁбЄ«озЁвҐ«м®© бЁвг жЁЁ, Ґ
®Ўа Ў®вЄ®© ҐҐ. Љ®¤ ®зЁбвЄЁ Ґ Ё¬ҐҐв ¤ ¦Ґ Ёд®а¬ жЁЁ ® ⮬, Є ЄЁ¬
бЇ®б®Ў®¬ Їа®Ја ¬¬ Ї®¤®и« Є ҐЈ® ўлЇ®«ҐЁо - ҐбвҐб⢥л¬
Ї®ап¤Є®¬ Ё«Ё зҐаҐ§ ЁбЄ«о票Ґ.
„ л© ЇаЁ¬Ґа ¬®¦® ба ўЁвм б Ї®б«Ґ¤Ё¬ ЇаЁ¬Ґа®¬ Ё§ Ђ¤л,
аҐи ойЁ¬ вг ¦Ґ б ¬го § ¤ зг.
„«п ўлЇ®«ҐЁп Ё¬Ґ® ®Ўа Ў®вЄЁ ЁбЄ«озҐЁп Ґ®Ўе®¤Ё¬® § вм
ЇаЁзЁг ЁбЄ«о票п. ЃЁЎ«Ё®вҐЄ „Ґ«мдЁ б®¤Ґа¦Ёв Ў®«ми®© Ў®а
ЇаҐ¤®ЇаҐ¤Ґ«Ґле ЁбЄ«о票©, Єа вЄ п е а ЄвҐаЁбвЁЄ Є®в®але
ЇаҐ¤бв ў«Ґ Ё¦Ґ.
я15.2. ЏаҐ¤®ЇаҐ¤Ґ«ҐлҐ ЁбЄ«о票п
ЃЁЎ«Ё®вҐЄ „Ґ«мдЁ ®Ў« ¤ Ґв б।бвў ¬Ё ®Ўа Ў®вЄЁ б«Ґ¤гойЁе
ўЁ¤®ў ЁбЄ«озЁвҐ«мле бЁвг жЁ©:
- ЁбЄ«озҐЁп ўў®¤ -ўлў®¤ ;
- ЁбЄ«озҐЁп ¤Ё ¬ЁзҐбЄ®© Ї ¬пвЁ;
- ЁбЄ«о票п 楫®© ¬ ⥬ вЁЄЁ;
- ЁбЄ«озҐЁп ўҐйҐб⢥®© ¬ ⥬ вЁЄЁ;
- ЁбЄ«озҐЁп Ґб®ўЇ ¤ҐЁп вЁЇ®ў;
- ЁбЄ«озҐЁп ЇаҐ®Ўа §®ў Ёп;
- ЇЇ а влҐ ЁбЄ«о票п.
ђ бᬮваЁ¬ Єа вЄ® Є ¦¤л© Ё§ ўЁ¤®ў ЁбЄ«о票©. ‚ Ў®«миЁб⢥
б«гз Ґў Ё¬п ЁбЄ«озҐЁп Ї®пвл¬ ®Ўа §®¬ а §кпбпҐв ЇаЁзЁг
ЁбЄ«о票п.
€бЄ«о票Ґ ўў®¤ -ўлў®¤ - EInOutError.
€бЄ«о票Ґ ¤Ё ¬ЁзҐбЄ®© Ї ¬пвЁ - EOutOfMemory,
EInvalidPointer.
€бЄ«о票Ґ 楫®© ¬ ⥬ вЁЄЁ - EIntError, Ё¬ҐҐв б«Ґ¤ЁЄ®ў -
EDivByZero, ERangeError, EIntOverflow.
€бЄ«о票Ґ ўҐйҐб⢥®© ¬ ⥬ вЁЄЁ - EMathError, Ё¬ҐҐв
б«Ґ¤ЁЄ®ў - EInvalidOp, EZeroDivide, EOverflow, EUnderflow.
€бЄ«о票Ґ Ґб®ўЇ ¤ҐЁп вЁЇ®ў - EInvalidCast.
€бЄ«о票Ґ ЇаҐ®Ўа §®ў Ёп - EConvertError.
ЂЇЇ а влҐ ЁбЄ«о票п - EProcessorException, Ё¬ҐҐв
б«Ґ¤ЁЄ®ў - EGPFault, EStackFault, EPageFault, EInvalidOpCode,
EBreakPoint, ESingleStep.
Ћв¬ҐвЁ¬, зв® ўбҐ ЇаЁўҐ¤ҐлҐ ЁбЄ«о票п пў«повбп
б«Ґ¤ЁЄ ¬Ё ®ЎкҐЄв Exception.
я15.3. €бЄ«озҐЁп Є Є ®ЎкҐЄвл
“¦Ґ Ј®ў®аЁ«®бм ® ⮬, зв® ЇаЁ ў®§ЁЄ®ўҐЁЁ ЁбЄ«озЁвҐ«м®©
бЁвг жЁЁ б। „Ґ«мдЁ б®§¤ Ґв нЄ§Ґ¬Ї«па ®ЎкҐЄв -ЁбЄ«о票п. ‚бҐ
®ЎкҐЄвл-ЁбЄ«о票п пў«повбп б«Ґ¤ЁЄ ¬Ё Ў §®ў®Ј® Є« бб
Exception. ќв®в Ў §®ўл© Є« бб Ё¬ҐҐв б«Ґ¤го饥 ЇаЁ¬Ґа®Ґ ®ЇЁб ЁҐ:
Type
Exception = class(TObject)
property Message : string read GetMessage write SetMessage;
private
function GetMessage : string;
procedure SetMessage(const Value : string);
public
constructor Create(const Msg : string);
destructor Destroy; override;
End;
‘ў®©бвў® Message ЇаҐ¤бв ў«пҐв б®Ў®© б®®ЎйҐЁҐ, Є®в®а®Ґ
Ї®пў«пҐвбп ў бЇҐжЁ «м®¬ ¤Ё «®Ј®ў®¬ ®ЄҐ, Є®Ј¤ Ї®пў«пҐвбп
ЁбЄ«о票Ґ, Ґб«Ё ®вбгвбвўгҐв бЇҐжЁ «мл© ®Ўа Ў®взЁЄ ЁбЄ«о票п.
‚ᥠЇҐаҐзЁб«ҐлҐ ўЁ¤л ЁбЄ«о票© пў«повбп б«Ґ¤ЁЄ ¬Ё
Exception, в.Ґ. ®ЇЁблў овбп б«Ґ¤гойЁ¬ ®Ўа §®¬, ЇаЁ¬Ґа:
Type
EInOutError = class(Exception)
public
ErrorCode : Integer;
end;
Ј¤Ґ ErrorCode - Є®¤ ®иЁЎЄЁ, гЄ §лў ойЁ© вг Ё«Ё Ёго
Є®ЄаҐвго ЇаЁзЁг, ўл§ў ўиго ЁбЄ«о票Ґ.
‘®Ўб⢥®Ґ ЁбЄ«о票Ґ ⮦Ґ «гзиҐ ®ЇаҐ¤Ґ«Ёвм Є Є б«Ґ¤ЁЄ
Є« бб Exception:
Type
EMyException = class(Exception);
Соседние файлы в папке Операционные среды АСОИУ