Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ерекше жағдайдың өңдеуішті анықтау

Читайте также:
  1. Балаларда кездесетін тіс жарақаттары. Диагностикасының және емнің клиникалық ағымының ерекшеліктері. Жедел тіс жарақаты бар баланы
  2. Дәріс №13. Материалдардың механикалық қасиеттерін анықтаудың тәсілдері
  3. Ерекше жағдайлар және класстар
  4. ІІ-тарау. Германиядағы фашистік режим және оның ерекшеліктері
  5. Мұз үстіндегі жол ерекшеліктері.
  6. Орта ғасырлардағы Италия дамуының ерекшеліктері.

Программа ерекше жағдайларды генерациялаған кезде, С++ ерекше жағдайлардың өңдеуішті (функция) іске қосады, оның операторларын ерекше жағдайлар класында анықталып қойылған еді. Мысалы келесі ерекше жағдайдын nuke_meltdown классы nuke_meltdown функциясына ерекше жағдайдың өңдеуіш операторларды анықтайды:

class nuke_meltdown {

public:
nuke_meltdown(void) { cerr << "\а\а\а
Ж ұмыс істеймін! Ж ұмыс істеймін! Ж ұмыс істеймін! " << endl; } };

Арада айтылмыш уақиғада, программа nuke_meltdown ерекше жағдайды генерациялаған кезде, try оператордан кейін бірінші операторға басқаруды қайтарып берудін орына, алдымен программа nuke_meltdown функциянын операторларын іске қосады. Келесі MELTDOWN.CPP программа nuke_meltdown функцияны қолдануын көрсетеді. Бұл программа try операторды ерекше жағдайды табуға рұқсат үшін қолданады. Ары қарай add_u232 функцияны amount параметрмен шақырады. Егер осы параметрдің мәні 255 кіші болса, онда функция nuke_meltdown ерекше жағдайды генерациялайды:

 

#include <iostream.h>

class nuke_meltdown

{
public:
nuke_meltdown(void) { cerr << "\а\а\а
Ж ұмыс істеймін! Ж ұмыс істеймін! Ж ұмыс істеймін!" << endl; }
};

void add_u232(int amount)

{
if (amount < 255) cout << "Параметр add_и232 в порядке" << endl;
else throw nuke_meltdown();
}

void main(void)

{
try

{
add_u232(255);
}
catch (nuke_meltdown)

{
cerr << "Программа түрақты" << endl;
}
}

Егер осы программаны компиляциядан өткізіп және іске атқарса, онда экранның дисплейінде келесі шығыс пайда болады:

С:\> MELTDOWN <ENTER>

Ж ұмыс істеймін! Ж ұмыс істеймін! Ж ұмыс істеймін!

Программа тұрақты

Егер алғашқы кодты тексерсе, оны әр хабарламадан генерациялайды, байқауға болады, ерекше жағдай пайда болған кезде басқару ағым ерекше жағдайдың өңдеуішіне тікелі және catch операторға кері қарай баратын байқауға болады. Nuke_meltdown функцияда ерекше жағдайдың өңдеуіші генерация арқылы шығаруға бірінші жол пайда болады. Ерекше жағдайды тапқан catch оператор шығудын екінші жолын генерациялайды.

Ерекше жағдайдың өңдеуішті аңықтау

C++ программада ерекше жағдайды тапқан кезде, ол арнайы функцияны іске қосады, оны ерекше жағдайдың өңдеуіші деп атайды. Ерекше жағдайдың өңдеуішің анықтау үшін ерекше жағдайдың классында функция құру қажет (конструкторға ұқсасты). Программа ерекше жағдайды генерациялаған кейін С++ автоматты түрде сәйкесті өңдеуішті шақырады.

Ерекше жағдайдын өңдеуіш қатені түзейтін операцияны орындайды. Осы операция орындалған кейін программа бірінші операторды іске қосады, ол try оператордан соң ерекше жағдайды тапқан кейін орындалады.


Дата добавления: 2015-07-08; просмотров: 243 | Нарушение авторских прав


Читайте в этой же книге: Error директивасы | Келтіру операторлары | Дәріс. Циклдар - басқару операторлар | Дәріс. Массивтер. Бірөлшемді және екіөлшемді массивтерді өңдеуге арналған программаларды құру | Көрсеткішті сипаттау | Дәріс. Массивтер және көрсеткіштер | Ші дәріс. Символдық жолдар және қолданылатын функциялар | Жолдарға қолданылатын операциялардың функциялары | Дәріс. Құрылымдар және мәліметтердің басқа формалары. | Дәріс. Файлдық енгізу-шығару. |
<== предыдущая страница | следующая страница ==>
Параметр Режим| Ерекше жағдайлар және класстар

mybiblioteka.su - 2015-2024 год. (0.008 сек.)