АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Исключения. Синтаксис

Читайте также:
  1. Исключения. Обработка нескольких ошибочных ситуаций.
  2. Исключения. Синтаксис.

Способ 3 – этот способ оставляет программы в неопределенном состоянии

Способ 4- это не у уменьшает кол-во if-ов в программе, код обработки исключений и код нормального алгоритма не разделяются.

Способ 5 – вызов специальной функции для обработки исключений.

 

Фрагмент 1   фрагмент 2   Фрагмент 3
вызов    
       
результаты      
                 

 

Функции из фрагмента 3 доступен не весь контекст ошибочных ситуаций.

Средства обработки исключений

3 ключевых слова:

try – отмечает фрагмент кода в котором могут возникать исключения. Обычно это действие, которое обращается к коду из других фрагментов программы.

catch – оператор обработки исключений, всегда идёт после блока try.

throw – оператор формирующий исключение. Производит выброс исключений.

try

{ throw <объект_типа_А>; }

catch (<тип_А> e)

{ }

При нормальном выполнении алгоритма выполняются операторы внутри блока try. Если ничего не произошло, блок catch будет пропущен.

Если внутри блока try была обнаружена исключительная ситуация то соответствующий участок кода вызывает оператор throw, что приводит к немедленному переходу на оператор catch, пропуская остальные строки блока try.

В качестве аргумента блока try оказывает некоторое значение, которое обычно является объектом. Это значение передаётся в качестве аргумента в блок catch, содержит информацию об ошибке.

Оператор throw может быть вызван в другом фрагменте кода. Например в функции, которая вызывается из try. Управление будет передано в блок catch сразу из функции.

Void f()

{…..if(); throw <>; }

void k()

{ try

{ f(); f(); };}

catch(< >)

{ } }

Кроме упомянутых особенностей в работе исключений есть ещё некоторые механизмы.

Возникшее исключение нельзя проигнорировать иначе программа завершится.

Должно соблюдаться определённое соответствие между типами throw и catch

В стандартной библиотеке С++ есть несколько классов исключений, но они не достаточно хорошо поддерживаются.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)