69720

Неспіймані виключення

Лекция

Информатика, кибернетика и программирование

Не дивлячись на найвідчайдушніші спроби обробити виключення, бувають випадки, коли необхідно припинити виконання програми. Відновлення після таких виключень (а також фатальних) неможливе. C++ дозволяє використовувати функції terminate...

Украинкский

2014-10-09

26.5 KB

0 чел.

Тема 10: Неспіймані виключення

Не дивлячись на найвідчайдушніші спроби обробити виключення, бувають випадки, коли необхідно припинити виконання програми. Відновлення після таких виключень (а також фатальних) неможливе. C++ дозволяє використовувати функції terminate і set_terminate. Ці функції оголошені в заголовному файлі Ехсерт.Н. Функція terminate завершує виконання програми за умовчанням. Ви можете визначити вашу власну функцію завершення, викликавши функцію set_terminate і передавши їй адресу вашої функції.

Розглянемо приклад програмування, який ілюструє, як і коли використовувати функцію set_terminate, щоб закінчити програму. У лістингу 16.6 показаний початковий текст програми Error6.CPP, яка ілюструє неспіймані виключення. Програма оголошує функції badnew, solver і main. У прототипі функції solver перераховані виключення, що генеруються цією функцією. Проте ця функція врешті-решт генерує виключення, що термінує, коли вона викликає функцію badnews. Програма реагує на це виключення, закінчуючи виконання.

Представимо виведення програми в лістингу 16.6.

Terminating program. That's al I folks!

Лістинг 16.6

Початковий текст програми Error6.CPP

// Програма ілюструє

// обробку неспійманих виключень

«include <iostream.h> «include <except.h> «include <stdl ib,h>

// оголосити скелетні класи виключень class mainerror {; class secerror {; class Kaboom {;

void badnews() <

throw Kaboom(); }

void solver(int ncode) throw(mainerror, secerror) { if (ncode > 0) throw mainerror(); else if (ncode < 0) throw secerror(); badnews(); }

void myterminateo {

cout << "Terminating program. That's al I folks!\n";

exit(1); >

main() {

setjterm i nate(myterm i nate);

// генеруємо виключення

try {

solver(O);

catch (mainerror)

cout « "HANDI ing main exception\n"; catch (secerror)

cout « "Handiing secondary exception\n";

}

return 0;

}

Лістинг 16.6 багато в чому подібний до лістингу 16.5. Новий лістинг створений шляхом заміни функцій set_unexpected і myunexpected функціями set_terminate і myterminate і повідомлення, що видається останньою функцією. Не дивлячись на те, що програми в лістингах 16.5 і 16.6 подібні, вони виконують абсолютно різні дії. Лістинг 16.5 обробляє несподівані виключення, а лістинг 16.6 формально відмовляється від відновлення виконання програми і завершує її.


 

А также другие работы, которые могут Вас заинтересовать

40000. Информационный менеджмент как процесс. Использование функций и методов информационного менеджмента в практике управления организацией 158.5 KB
  Ведь нельзя недооценивать роль информации на этапе принятия финансовоуправленческого решения. Любая задержка информации или ее искажение чреваты непредсказуемыми последствиями. Данные являются характеристиками фактов и событий они являются источником информации. Для людей или организаций связанных с финансами решающее значение приобретают связи со средствами массовой информации СМИ они помогают распространять информацию добиться положительного общественного имиджа овладеть техникой достижения этих целей и т.
40001. Сущность стратегического планирования. Фазы стратегического планирования 336.5 KB
  Стpтeгичecкий мeнeджмeнт этo ткoe yпpвлeниe opгнизциeй кoтopoe oпиpeтcя н чeлoвeчecкий пoтeнцил кк ee ocнoвy opиeнтиpyeт пpoизвoдcтвeннyю дeятeльнocть н зпpocы пoтpeбитeлeй ocyщecтвляeт гибкoe peгyлиpoвниe и cвoeвpeмeнныe измeнeния в opгнизции дeквтныe вoздeйcтвию oкpyжющeй cpeды и пoзвoляющиe дoбивтьcя кoнкypeнтныx пpeимyщecтв чтo в кoнeчнoм cчeтe cпocoбcтвyeт выживнию opгнизции и дocтижeнию cвoиx цeлeй в дoлгocpoчнoй пepcпeктивe. Стpтeгичecкий мeнeджмeнт имeeт pяд oтличий oт oпepтивнoгo: миccия opгнизции в стратегическом...
40002. Тактическое планирование и бюджетирование маркетинга 441 KB
  Тактическое планирование и бюджетирование маркетинга Содержание темы: 1. Основные этапы тактического планирования маркетинга. Разработка бюджета маркетинга. Использование многокритериального анализа при планировании маркетинга в системе Mrketing Expert.
40003. Виртуальный маркетинг 99 KB
  Базы данных. системы постоянного слежения хранения и обработки маркетинговых данных необходимых для выработки управленческих решений. Маркетинговая информационная система предприятия может включать: 1 информационный блок базы данных; 2 банк моделей и методик: 3 программные средства и интегрированные системы. Базы данных.
40004. Совершенствование маркетинга в организациях 91 KB
  Маркетинг и технологические средства управления. Маркетинг как деятельности субъектов управления. Маркетинговая система МС как подсистема организационного управления объективно существует в любой действующей фирме однако степень ее развития и эффективности может значительно различаться. В смысле товаров значительное развитие получили МС для потребительской продукции предметов труда сырья и материалов слабее развиты МС для средств труда машин оборудования и еще слабее для технологических средств управления особенно организационного.
40005. Информационные процессы в маркетинге и объективная необходимость их автоматизации 335.5 KB
  Бурное развитие информационных процессов вызвано также изменениями в подходах к оценке роли информации в политической и экономической жизни страны. Наше общество стало открытым возросли требования к потребляемой им информации которая должна быть актуальной достоверной полной и доступной. Вопервых в результате законотворческой и регулирующей деятельности государства ужесточились требования к достоверности своевременности и законности отчетностатистической информации вырабатываемой на уровне микроэкономического объекта. Вовторых...
40006. Маркетинговые информационные системы 552.5 KB
  Поставщики маркетинговой информации. Поставщики маркетинговой информации. В систему маркетинговой информации входят подсистемы данных используемых в различных видах и на разных этапах деятельности. Среди этих подсистем выделяются: Подсистема научнометодической информации обеспечивающая научных и практических работников методологией и методикой маркетинговой деятельности научным анализом состояния и тенденций развития данной области знания сведениями о школах направлениях концепциях существующих в научной и практической деятельности.
40007. Сущность и функции управления маркетингом 286 KB
  Принципиальная возможность развития маркетинга в России была определена реформами 90х гг. В зависимости от стадии развития маркетинга и его ориентации на внешнюю среду можно выделить три уровня использования маркетинговой концепции в управлении организацией: изолированная реализация отдельных элементов маркетинга реклама стимулирование сбыта ценообразование с учетом спроса и др.; маркетинг как концепция рыночного управления организацией что предопределяет не просто создание службы маркетинга но и изменение философии ее деятельности....
40008. Стратегическое планирование маркетинга и способы его осуществления 699.5 KB
  Построение карты рынка и выбор вариантов стратегического развития с помощью системы Mrketing Expert. Существует широкий спектр маркетинговых решений называемых стратегическими который охватывает с одной стороны направления развития рынка а с другой целенаправленный его выбор. Тактические решения больше полагаются на внутреннюю информацию полученную в результате анализа хозяйственной деятельности или исследований возможностей рынка. Среди них: анализ окружения оценка конкуренции и стратегической ситуации в целом состояние товарного...